Показать сообщение отдельно
Старый 18.03.2008, 00:56   #20
Димон
Гуру
 
Аватар для Димон
 
Регистрация: 03.10.2005
Город: МКАД восток-запад
Регион: 77, 97, 99, 177
Машина: 09\Опиль\АстраХ
Сообщений: 2,012
Димон is a splendid one to beholdДимон is a splendid one to beholdДимон is a splendid one to beholdДимон is a splendid one to beholdДимон is a splendid one to beholdДимон is a splendid one to behold
По умолчанию

Ничего странного, все просто и логично (начинает нравиться рено). Просто на две функции "колесико тудымс" и "колесико сюдымс" задействовано три провода, остальные поодному.

Конструкция скрипта не требует циклических опросов. ПРосто старый скрипт был заточен под работу с резистивными подрулевыми и осевыми жостиками с потенциометрами, где не было событий, надо было лазить и смотреть значение по оси Х.

Здесь ситуация другая, на любое нажатие есть событие вида "joybutton2" т.е. нажатие кнопки-замыкание контактов. Тут какраз уместно использовать именно lpt порт, у которого толком нет осей, зато куча кнопок.

Весь скрипт пишется методом подставленя к кнопкам виртуального жостика например кнопок виртуальной клавиатуры (может даже медийных). Нужно определиться с фронтендом-списком команд т.к. под RR и его семейства winamp-based-programs проще посылать wm-commands. В ICT и другим media-player-based программах логичнее использовать кнопки медийной клавиатуры (виртуально конечно)

Скрипт колесика чуть сложнеее, но тоже независит от времени-циклов. При пуске скрипта опрашивается 6-7-8 контакты и текущее значение заносится в переменную, напр. n:=8. Затем, при написании действий кнопок жостика 6-7-8 пишутся такие строчи:

При нажатии кнопки 6:
1. Посмотреть переменню n.
2. Если она 7, то нажать курсор вверх.
3. Если она 8, то нажать курсор вниз.
4. Переменной n присвоить значени := 6

При нажатии кнопки 7:
1. Посмотреть переменню n.
2. Если она 8, то нажать курсор вверх.
3. Если она 6, то нажать курсор вниз.
4. Переменной n присвоить значени := 7

При нажатии кнопки 8:
1. Посмотреть переменню n.
2. Если она 6, то нажать курсор вверх.
3. Если она 7, то нажать курсор вниз.
4. Переменной n присвоить значени := 8

Таким образом колесико будет построчно листать списки курсорами вверх-вниз, независимо от скорости lpt-порта, принципов действия енкодеров и жизни на марсе.

Похоже рено специально так соединили контакты в руле чтобы такой простой скрипт получился, ведь у них в бубнитоле тоже проц был нерезиновый, надо было чтонить попроще замутить.
Димон вне форума   Ответить с цитированием