|
|
  |
нажатие кнопки, в течение определенного интервала |
|
|
|
Sep 9 2010, 06:45
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата Зачем нужно 5с событие, которое произошло полчаса назад, когда на кнопку, например, сели попой и заметили это только сейчас? Кстати, это весьма ценное замечание (про 'сели попой') Реальный случай - Делали систему управления конференц залом (среди прочего управляемые шторы, экран, проектор, свет). У системы было 4 пульты управления (3 на основе LCD экранчиков с touch screen'ом и один полноразмерный PC). У заказчиков было требование - ко всем этим пультам сделать еще в добавок одну 'тревожную' кнопку - при коротком нажатии на нее должен был включаться свет (если что то не так пойдет в презентации, что бы люди в зале не сидели в темноте), а при длительном - весь зал приводится в исходное состояние (открыть шторы, поднять экран, выключить проектор и т.д.) Кнопка была сделана, в добавок к кнопке был сделан светодиод для индикации времени нажатия, и был сделан 3й таймаут (как раз из серии 'сели попой') - он индицировался вспышками светодиода. Заказчик потом долго благодарил за 3й таймаут, когда в процессе одной ОЧЕНЬ важной презентации на кнопку в темноте положили книгу
|
|
|
|
|
Sep 9 2010, 11:49
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(rezident @ Sep 8 2010, 23:19)  Ну и что? Пауза 3с всегда короче 5с и возникает раньше второго события. Время штука непрерывная и необратимая. Тогда объясните, пожалуйста, как в Вашем алгоритме запустить действие (вызвать функцию), которое необходимо выполнять по трёхсекундному удержанию кнопки ? Я думаю, очевидно, что если кнопка удерживается 5 секунд - то трёхсекундное действие выполнять НЕ нужно. А у Вас событие "кнопка удержана 3 с" формируется даже тогда, когда кнопка удерживается уже 5 с -- вот собственно суть того, с чем я не согласен. Поэтому, на мой взгляд, и логично формировать событие "кнопка удержана 3 с", когда она уже отпущена.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Sep 9 2010, 12:20
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Demeny @ Sep 9 2010, 17:49)  Тогда объясните, пожалуйста, как в Вашем алгоритме запустить действие (вызвать функцию), которое необходимо выполнять по трёхсекундному удержанию кнопки ? Я думаю, очевидно, что если кнопка удерживается 5 секунд - то трёхсекундное действие выполнять НЕ нужно. Не нужно - не выполняйте.  События разные и (скан-)коды, соответствующие этим событиям, тоже разные. Вас ведь наверное не удивляет, что стандартная клавиатура состоящая из 102 кнопок генерирует больше двух сотен скан-кодов, не так ли?  По крайней мере каждая клавиша в ней генерирует два скан-конда, один соответствует ее нажатию, а второй ее отпусканию. А еще играет рояль сочетание клавиш.
|
|
|
|
|
Sep 10 2010, 06:35
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(rezident @ Sep 9 2010, 16:20)  Не нужно - не выполняйте.  События разные и (скан-)коды, соответствующие этим событиям, тоже разные. Вас ведь наверное не удивляет, что стандартная клавиатура состоящая из 102 кнопок генерирует больше двух сотен скан-кодов, не так ли?  Рассмотрим пример. Кофейный автомат с одной кнопкой. По трёхсекундному нажатию он должен наливать кофе, а по пятисекундному - возвращать клиенту деньги. Проще говоря, короткое нажатие - наливаем кофе (если деньги внесены), длинное нажатие - возврат денег. Ваш конечный автомат, обслуживающий кнопку, сначала начнёт наливать кофе, а потом вернёт деньги. Как ни крутите - решение о выполняемом действии надо принимать при отпускании кнопки.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Sep 10 2010, 06:59
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(ILYAUL @ Sep 10 2010, 01:29)  Вы попробуйте сами оценить как Вы нажимаете кнопки клавиатуры и все поймёте.  Вообще-то, буквы выскакивают при нажатии, а не при отпускании. А вот инженеры филипса при проектировании радиотрубки руководствовались наверно мнением британских психологов. При нажатии кнопки раздаётся звук, а при отпускании - появляется цифра на экране. Бесит этот факт неимоверно. Особенно поначалу.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Sep 10 2010, 08:33
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(rezident @ Sep 10 2010, 02:27)  Ерунда какая-то. Пользователь жмет (увеличивает усилие на) кнопку пока не поймет, что кнопка нажата и устройство ввода восприняло его команду нажатия. Так что на клавиатуре без тактильного эффекта работать по отпусканию вообще невозможно. Пользователь через пять минут весь исплюется и потребует себе нормальную клаву, которая либо "клик" дает, либо по факту нажатия работает. Я же написал , что клавиатура работает по двойному принципу и нажатие и отпускание. Их иследования показали , что при нажатии на кнопку , человек производит целую гамму всевозможных действий , т.т "выцеливание кнопки , расчёт силы нажатия (удара) по кнопке , удержание и ещё чего то заумное ( типа , а толи я нажал) то есть напрягаются целлая гамма мышец и мозгового вещества. ( Ищу снова эту статью) . Зато при отжатии , мозги вообще не работают. Не нужны . Мышицы под давлением кнопки раслабляются и все и Вы не отслеживаете чё там с этой кнопкой
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|