The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Отладка

Отладка

Предыдущая  Содержание  Следующая V*D*V

Если вы разрабатываете драйвер ввода, в качестве помощи при отладке можно использовать модуль evbug. Он распечатывает набор (тип, код, значение) (смотрите структуру input_event, определённую ранее), соответствующий событиям, порождённым подсистемой ввода. На Рисунке 7.4 приведены данные, перехваченные evbug при работе с некоторыми устройствами ввода:

 

Рисунок 7.4. Вывод из Evbug.

 

Код:

/* Движение по сенсорной панели */

evbug.c Event. Dev: isa0060/serio1/input0: Type: 3, Code: 28, Value: 0

evbug.c Event. Dev: isa0060/serio1/input0: Type: 1, Code: 325, Value: 0

evbug.c Event. Dev: isa0060/serio1/input0: Type: 0, Code: 0, Value: 0

 

/* Передвижение устройства позиционирования */

evbug.c Event. Dev: synaptics-pt/serio0/input0: Type: 2, Code: 0, Value: -1

evbug.c Event. Dev: synaptics-pt/serio0/input0: Type: 2, Code: 1, Value: -2

evbug.c Event. Dev: synaptics-pt/serio0/input0: Type: 0, Code: 0, Value: 0

 

/* Движение USB мыши */

evbug.c Event. Dev: usb-0000:00:1d.1-2/input0: Type: 2, Code: 1, Value: -1

evbug.c Event. Dev: usb-0000:00:1d.1-2/input0: Type: 0, Code: 0, Value: 0

evbug.c Event. Dev: usb-0000:00:1d.1-2/input0: Type: 2, Code: 0, Value: 1

evbug.c Event. Dev: usb-0000:00:1d.1-2/input0: Type: 0, Code: 0, Value: 0

 

/* Нажатие кнопки 'a' на PS/2 клавиатуре */

evbug.c Event. Dev: isa0060/serio0/input0: Type: 4, Code: 4, Value: 30

evbug.c Event. Dev: isa0060/serio0/input0: Type: 1, Code: 30, Value: 0

evbug.c Event. Dev: isa0060/serio0/input0: Type: 0, Code: 0, Value: 0

 

/* Нажатие кнопки 'a' на USB клавиатуре */

evbug.c Event. Dev: usb-0000:00:1d.1-1/input0: Type: 1, Code: 30, Value: 1

evbug.c Event. Dev: usb-0000:00:1d.1-1/input0: Type: 0, Code: 0, Value: 0

evbug.c Event. Dev: usb-0000:00:1d.1-2/input0: Type: 1, Code: 30, Value: 0

evbug.c Event. Dev: usb-0000:00:1d.1-2/input0: Type: 0, Code: 0, Value: 0

 

Чтобы разобраться в дампе на Рисунке 7.4, вспомните, что сенсорные панели генерируют абсолютные координаты (EV_ABS) или событие типа 0x03, устройства позиционирования дают относительные координаты (EV_REL) или события типа 0x02, и клавиатуры создают события кнопок (EV_KEY) или события типа 0x01. Тип события 0x0 соответствует вызову input_sync(), который выполняет следующие действия:

 

input_event(dev, EV_SYN, SYN_REPORT, 0);

 

Это приводит к набору (тип, код, значение) (0x0, 0x0, 0x0) и завершает каждое событие ввода.

Предыдущая  Содержание  Следующая