Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Измерение точного времени по нажатию клавиши   Найти похожие ветки 

 
yuri   (2003-11-12 16:11) [0]

Добрый день.
Мне нужно составить программу-тест, которая определяет реакцию
тестируемого на различные зрительные раздражители.
Поясняю: на экране по заранее определенным параметрам появляются
фигуры, цвета, слова и др. раздражители. Тестируемый при появлении определенного раздражителя должен осуществлять ответную реакцию, т. е. нажимать клавишу.
При использовании TTimer на разных машинах получаются разные
результаты.
Дело в том, что при нажатии клавиши Винда сначала сама обрабатывает это событие, потом определяет к какому приложению относится это событие и только после этого передаёт обработку моей программе, отчего получаются неточные измерения.
Подскажите пожалуйста как перехватить у Винды обработку нажатия клавиши или вообще: Что можно сделать?
Точность изсерения 0,01с.
Заранее благодарен.


 
Anatoly Podgoretsky ©   (2003-11-12 16:19) [1]

Как ты умудрисля сделать с таймером, у него нет возиожности считывать показания, да и задача у него другая - отсчитывать интервалы.


 
Digitman ©   (2003-11-12 16:22) [2]


> как перехватить у Винды обработку нажатия клавиши


NT - драйвер режима ядра
Маздай - прямой переход в Ring0 с подменой дескриптора шлюза прерывания порта клав-ры на шлюз, ведуший в твой собственный код обработки


 
MBo ©   (2003-11-12 16:30) [3]

возможно, поможет - в winSDK Help описание структуры MSG, а именно - поле time


 
han_malign ©   (2003-11-12 16:30) [4]

> yuri (12.11.03 16:11)
<Отображение события>
dwShowEventTime:=GetTickCount;
<Нажатие на кнопку>
dwResponseTime:=GetTickCount-dwShowEventTime;//миллисекунд

> Digitman © (12.11.03 16:22) [2]
> NT - драйвер режима ядра
- да ладно человека пугать, уж точность 20мс, как нибудь, и через очередь сообщений получится, если, конечно, не блокировать ее длительными вычислениями в обработчиках событий...


 
yuri   (2003-11-12 16:59) [5]

Дело в том, что мне нужна точнось 1мс


 
clickmaker ©   (2003-11-12 17:07) [6]

QueryPerformanceCounter / QueryPerformanceFrequency


 
VMcL ©   (2003-11-12 17:07) [7]

Может QueryPerformanceCounter, QueryPerformanceFrequency спасут отца русской демократии?


 
VMcL ©   (2003-11-12 17:08) [8]

2 clickmaker :)


 
Anatoly Podgoretsky ©   (2003-11-12 17:19) [9]

yuri (12.11.03 16:59) [5]
Дело в том, что виндоус не обеспечивает


 
Digitman ©   (2003-11-12 17:32) [10]


> han_malign


я не пугаю) ... каков вопрос - таков ответ)


 
han_malign ©   (2003-11-12 17:42) [11]

> Дело в том, что мне нужна точнось 1мс
- о как - физическое время обновления экрана, в лучшем случае - 10мс, у ему нужно скорость восприятия с точностью до 1мс. Тем более что известно, что время сброса активного состояния пигмента колбочки 15-30мс, палочки ~100мс, а им еще время нужно, чтобы накопить пороговый заряд, для перехода в активное состояние. Думаешь 24Гц и 25-й кадр с потолка взяли?

Опять экстрасэКсов ищем, со свервосприНятием...


 
Dimaz-z ©   (2003-11-12 17:44) [12]

GetTickCount


 
АСМиД   (2003-11-12 17:55) [13]

Можно попробовать использовать в TTimer интервал в 55 мс и, для расчета точного интервала времени, функцию GetSystemtick - время (в милдисекундах), прошедшее с момента запуска Windows.
Вообще реакция человека на внешнее воздействие не превышает 0.5 сек.


 
han_malign ©   (2003-11-12 18:06) [14]

> АСМиД (12.11.03 17:55) [13]
> Вообще реакция человека на внешнее воздействие не превышает 0.5 сек.
- это на видеоинформацию. Реакция на тактильные и аудио раздражители быстрее - время обработки меньше, и тип (а, соответственно, и латентность) сенсоров другие.


 
АСМиД   (2003-11-12 18:13) [15]

Может тогда имеет смысл использовать GetSystemTick в цикле с параллельным вызовом ProcessMessage?


 
yuri   (2003-11-12 18:14) [16]

Спасибо попробую


 
yuri   (2003-11-12 18:36) [17]

У кого ещё какие соображения?
Если можно с примерами.


 
yuri   (2003-11-13 15:38) [18]

А нельзя ли написать какой-либо драйвер для клавиатуры, который бы перехватывал событие нажатия клавиши и сразу передавал это событие программе, а не ждать пока его (событие) передаст Винда?
Подскажите пожалуйста что-нибудь, если можно с примером.


 
sniknik ©   (2003-11-13 15:46) [19]

новый цикл
> А нельзя ли написать какой-либо драйвер для клавиатуры
можно, см.
Digitman © (12.11.03 16:22) [2]
с примером облом, нет у меня такого.



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.232 c
3-78817
Митяй
2003-11-04 17:20
2003.11.24
Локальная БД.


8-79058
ildar
2003-07-22 09:40
2003.11.24
вхождение одного звукового фрагмента в другой


3-78824
a123
2003-11-04 17:38
2003.11.24
Скролл


1-78921
JS
2003-11-12 11:36
2003.11.24
inline-функции


1-78876
Win error
2003-11-15 05:19
2003.11.24
Документ Word