PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Устройства ввода > Пульты ДУ

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2008, 02:16   #71
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
Thumbs up

Цитата:
Сообщение от dr_cannabis Посмотреть сообщение
Господа, объясните идиоту, уже 2 часа мучаюсь, но понять никак не могу! Как организована функция удержания кнопки, где и как считаеться время нажатия, если можно на примере с одной переменной!
да все просто очень на самом деле :-)

Там цикл, который реагирует на любое изменение координат осей.

Вот мой главный цикл

Loop
{
; Читаем состояние кнопок. Если кнопарь нажат, то переменная button(№кнопки)= D
Loop, %joy_buttons%
{
GetKeyState, button%a_index%, %JoystickNumber%joy%a_index%
}

; Читаем показания оси Х - по сути основных кнопок жостика
GetKeyState, joyx, %JoystickNumber%JoyX
GetKeyState, joyz, %JoystickNumber%joyZ

;ToolTip, %joyx%

if (joyx<>"") and((joyx<>prev_joyx) or (joyz<>prev_joyz))
{
; если состояние джойстика изменилось

if (prev_joyx <> joyx_default) or (prev_joyz<>joyz_default)
{
; если было не дефолтное положение - считаем, что прошлое положение отпущено, вызываем обработчик.
res_button_released( prev_joyx , prev_joyz , timer)
}
timer = 0
prev_joyx := joyx
prev_joyz := joyz
if (joyx <> joyx_default) or (joyz<>joyz_default)
{
; Если новое положение не дефолтное, то вызываем обработчик нажатия и начинаем счет времени
res_button_pressed(joyx, joyz, timer)
}
}
else
{
if (joyx <> joyx_default) or (joyz<>joyz_default)
{
; если ничего не изменилось и положение НЕ дефолтное, то увеличиваем таймер на 1 и вызываем обработчик нажатия.
timer := timer + 1
res_button_pressed(prev_joyx, prev_joyz, timer)
}

}

Sleep, 50
}

0. То есть систему включили, у нее все по дефолту, ничего не происходит. далее:
1. Нажали кнопку. Начал вызываться обработчик нажатия. У него есть параметр Timer, который последовательно увеличивается. Если Timer=0, то кнопку только что нажали
2. Кнопку отпустили (или нажали что-то другое) Вызвался обработчик отпускания с параметром Timer, соответствующим времени нажатия на кнопку. Затем см пункт 0 или 1.

Теперь пишем обработчик для единственной кнопки

res_button_pressed(jx, jz , time_from_pressing)
{
global ; чтобы иметь доступ к глобальным переменным
if (jz = joyz_default) and (time_from_pressing = 0) ; то есть обрабатываем непосредственно нажатия, а не удерживания кнопок.
If (jx <= JKey_VOLU_max) and (jx>= JKey_VOLU_min) and ((time_from_pressing/5) = round(time_from_pressing/5))
{
SoundGet, master_volume
if time_from_pressing = 0
{
master_volume := master_volume*(1+(First_VolumeStep/100))
}
else
if time_from_pressing >= 15
{
master_volume := master_volume*(1+(Repeat_VolumeStep/100))
}

SoundSet, master_volume
}
}

Тут смысл такой - если только что нажали - меняем громкость на First_VolumeStep, а если ужерживаем - меняем на Repeat_VolumeStep каждые 5 циклов вызова, но если время от нажатия не менее 15.

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

зы. Скопируй отсюда текст и расставь сдвиги вправо, чтобы понимать какой if на что действует, иначе непонятно... Я вставлял tab, но форум их съел :-(.
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588
SBorovkov вне форума   Ответить с цитированием
Старый 22.11.2008, 02:31   #72
dr_cannabis
Пользователь
 
Регистрация: 13.04.2008
Город: москва
Регион: 77, 97, 99, 177
Машина: LANCER X
Сообщений: 49
dr_cannabis has a spectacular aura aboutdr_cannabis has a spectacular aura aboutdr_cannabis has a spectacular aura about
По умолчанию

Спасибо, просто очень в неудобной для читания форме скрипт напечатан (по крайней мере для меня)сложно уловить начало и конец цикла я уже почти весь скрипт по if ам разложил, пока пост заметил! Респект вам ребята очень нужное дело сделали)
dr_cannabis вне форума   Ответить с цитированием
Старый 25.01.2009, 21:46   #73
KilleRMill
Пользователь
 
Регистрация: 26.09.2007
Возраст: 41
Город: Челябинск
Регион: 74
Машина: Toyota Fielder NZ121G '04
Сообщений: 93
KilleRMill is on a distinguished road
По умолчанию

А почему никто не использует другие кнопки F-16U? Там ведь еще 4 кнопки. Да, я понимаю что на SONY их не повесишь, но можно же вывести еще 4 кнопки, для спец нужд. Кто что думает по этому поводу?

Последний раз редактировалось KilleRMill; 26.01.2009 в 20:46.
KilleRMill вне форума   Ответить с цитированием
Старый 24.03.2009, 18:41   #74
LeonyB
Новый Пользователь
 
Регистрация: 13.11.2008
Возраст: 41
Регион: Украина
Сообщений: 15
LeonyB is on a distinguished road
По умолчанию

люди.... а подскажите pls
как сделать так чтобы распознать нажатие Button 1(Pin 2) на game порте?
LeonyB вне форума   Ответить с цитированием
Старый 10.04.2009, 01:24   #75
alexsorockin
Старший Пользователь
 
Регистрация: 12.07.2008
Возраст: 40
Город: Рязань
Регион: 62
Машина: ROVER 416
Сообщений: 172
alexsorockin is on a distinguished road
По умолчанию

Вот последняя версия для джойстика.

Функции:
-Кратковременное нажатие каждой кнопки
-Кратковременное нажатие пары кнопок
-Долгое нажатие каждой кнопки
-Долгое нажатие пары кнопок
-Ini файл с настройками
-32 горячие клавиши, задаются в Ini файле
-прочие настройки
Вложения
Тип файла: rar JOY_8.04.2009.rar (9.0 Кб, 724 просмотров)
alexsorockin вне форума   Ответить с цитированием
Старый 29.10.2009, 22:08   #76
dr_cannabis
Пользователь
 
Регистрация: 13.04.2008
Город: москва
Регион: 77, 97, 99, 177
Машина: LANCER X
Сообщений: 49
dr_cannabis has a spectacular aura aboutdr_cannabis has a spectacular aura aboutdr_cannabis has a spectacular aura about
По умолчанию

Еще 5 копеек к скрипту перешел на виндовс 7 и обнаружил что звук перестал регулироваться командами Soudset вот решения с форума

On Windows Vista, SoundSet and SoundGet affect only the script itself (this may be resolved in a future version). There are at least two ways to work around this:

1) In the properties dialog for the file "AutoHotkey.exe" (or a compiled script), change the compatibility setting to "Windows XP".

2) Have the script send volume-control keystrokes to change the master volume for the entire system. For example:Code (Copy):
Send {Volume_Up} ; Raise the master volume by 1 interval (typically 5%).
Send {Volume_Down 3} ; Lower the master volume by 3 intervals.
Send {Volume_Mute} ; Mute/unmute the master volume
dr_cannabis вне форума   Ответить с цитированием
Старый 16.05.2010, 05:59   #77
alexsorockin
Старший Пользователь
 
Регистрация: 12.07.2008
Возраст: 40
Город: Рязань
Регион: 62
Машина: ROVER 416
Сообщений: 172
alexsorockin is on a distinguished road
По умолчанию

Скоро снова напишу программку на делфи - можно будет настроить:
- любую кнопку
- любую комбинацию кнопок
- любую последовательность отдельно нажатых кнопок
- любую последовательность отдельно нажатых кнопок или комбинаций
- долгое нажатие отдельной кнопки
- долгое нажатие комбинации кнопок
- завершение долгим нажатием отдельной кнопки после любой последовательности отдельно нажатых кнопок
- завершение долгим нажатием комбинации кнопок после любой последовательности отдельно нажатых кнопок
- завершение долгим нажатием комбинации кнопок после любой последовательности отдельно нажатых кнопок или комбинаций

а также:
- оконный интерфейс
- назначение любых горячих клавиш
- режим мыши

и многое другое...

пишите ваши предложения, всё равно заново писать придётся...
Программа была практически готова, но флешка, с которой работал неожиданно сбойнула и всё пропало, не зарезервировал )))

быстро не обещаю - времени свободного практически нет, уже 2 месяца как компьютер домой принёс, поставил Win7, а езжу без музыки...
alexsorockin вне форума   Ответить с цитированием
Старый 30.10.2010, 02:47   #78
Mshow
Старший Пользователь
 
Аватар для Mshow
 
Регистрация: 25.02.2007
Возраст: 44
Город: Ростов на Дону
Регион: 61
Машина: 99\VW\Sharan 2006\BMW 325Xi
Сообщений: 65
Mshow is on a distinguished road
По умолчанию

Цитата:
Сообщение от alexsorockin Посмотреть сообщение
Скоро снова напишу программку на делфи - можно будет настроить:
- любую кнопку
- любую комбинацию кнопок
- любую последовательность отдельно нажатых кнопок
- любую последовательность отдельно нажатых кнопок или комбинаций
- долгое нажатие отдельной кнопки
- долгое нажатие комбинации кнопок
- завершение долгим нажатием отдельной кнопки после любой последовательности отдельно нажатых кнопок
- завершение долгим нажатием комбинации кнопок после любой последовательности отдельно нажатых кнопок
- завершение долгим нажатием комбинации кнопок после любой последовательности отдельно нажатых кнопок или комбинаций

а также:
- оконный интерфейс
- назначение любых горячих клавиш
- режим мыши

и многое другое...

пишите ваши предложения, всё равно заново писать придётся...
Программа была практически готова, но флешка, с которой работал неожиданно сбойнула и всё пропало, не зарезервировал )))

быстро не обещаю - времени свободного практически нет, уже 2 месяца как компьютер домой принёс, поставил Win7, а езжу без музыки...
Что-нибудь сдвинулось? интересно опробовать)
__________________
Корпус: G-Alantic GA620iBK, Проц:CPUC2D 2400/4M/800BX/T7700, (MSI) Fuzzy GM965
Mshow вне форума   Ответить с цитированием
Старый 25.07.2013, 14:42   #79
Sol_S
Старший Пользователь
 
Регистрация: 11.12.2008
Возраст: 45
Город: Алматы
Регион: Казахстан
Машина: 96\Toyota\Ipsum
Сообщений: 187
Sol_S is on a distinguished road
По умолчанию

Народ привет. Извиняюсь за никрофильство
Есть возможность прикупить сей девайс. Вы его юзали смотрю и удачно. Хотел поинтересоваться джойстик удобный или лучше кнопки на руле?
__________________
Делаешь - не бойся. Боишься - не делай.

Мой проект - http://pccar.ru/showthread.php?t=17537
Sol_S вне форума   Ответить с цитированием
Старый 25.07.2013, 16:07   #80
zanuda
Старший Пользователь
 
Аватар для zanuda
 
Регистрация: 24.03.2010
Возраст: 49
Город: СПб
Регион: 78, 98
Машина: Fiat Panda
Сообщений: 332
zanuda has a spectacular aura aboutzanuda has a spectacular aura aboutzanuda has a spectacular aura about
По умолчанию

Цитата:
Сообщение от Sol_S Посмотреть сообщение
Народ привет. Извиняюсь за никрофильство
Есть возможность прикупить сей девайс. Вы его юзали смотрю и удачно. Хотел поинтересоваться джойстик удобный или лучше кнопки на руле?
у меня нет кнопок на руле. потому крайне доволен девайсом.
Возможность прикупить новый или бу? а то мне пришлось как запчасть его покупать
zanuda вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 03:30.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot