Как перехватить внешнее событие

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как перехватить внешнее событие

Сообщение ANDRE » 06.04.2012 13:37:43

Есть картридер подключенный через сом-порт, необходимо перехватить событие вызванное проведением магнитной карты.
Условия os -WIndows XP, драйвер от "Атол" к этому драйверу успешно цепляюсь с помощью OLE
Scaner:=CreateOleObject('AddIn.Scaner45');
Но вот дальше уперся в тупик. буду благодарен за любую помощь :)
ANDRE
незнакомец
 
Сообщения: 3
Зарегистрирован: 06.04.2012 13:24:53

Re: Как перехватить внешнее событие

Сообщение B4rr4cuda » 06.04.2012 22:50:56

Наверное хорошо быть телепатом) Можно сразу понять, чего имели ввиду, в чем проблема и тд)
С компортовыми кардридерами не сталкивался, но возможно стоит с ним работать напрямую?
Если по событию он шлет данные в буфер - событием будет наличие данных в буфере, которые ловим в потоке, который проверяет наличие данных в буфере, читаем и обрабатываем.
Если необходимо его опрашивать - та же схема - поток с цикличным опросом - чтение.
Если охота юзать драйвер - внимательно читаем документацию, описывающую работу с устройством.
В крайнем случае ставим какой-нить монитор данных компорта, берем софтину, которая умеет работать с данным девайсом и реверсинженерим отловленные пакеты. Нудно, но полезно. Иногда выплывают вещи, которые в документации не указаны.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Как перехватить внешнее событие

Сообщение Vadim » 07.04.2012 08:18:15

ANDRE
Как только Вы создали объект, у него появляются какие-то методы, которые описаны в справке к Вашему сканеру. Работа будет выглядеть так:
Код: Выделить всё
Scanner.Команда

Что такое "Команда" Вы должны посмотреть в справке. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как перехватить внешнее событие

Сообщение ANDRE » 10.04.2012 13:53:22

Хочется обработать внешнее событие по принципу реализованному в 1С с помощью предопределенной процедуры - "Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)", которая вызывается непосредственно после проведения карточкой и в этом случае нет необходимости держать цикл на предмет изменения свойств объекта. И вообще насколько это возможно в lazarus? Есть ли вообще какой либо обработчик событий приложения который можно былобы перекрыть чтобы добавить обработку своего события
ANDRE
незнакомец
 
Сообщения: 3
Зарегистрирован: 06.04.2012 13:24:53

Re: Как перехватить внешнее событие

Сообщение pi1 » 19.04.2012 18:25:24

А что, в цикле (в Lazarus) получилось вывести данные из буфера в переменную своей задачи (как в примере для JS, что идет с драйвером атола) ?
Аватара пользователя
pi1
новенький
 
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 240

Рейтинг@Mail.ru
cron