Приставки > Джойстики и прочие манипуляторы
Подключение приставочных джойстиков через USB
<< < (4/35) > >>
HardWareMan:

--- Цитата: masyanya;155009 ---Ого... чё-то я какой-то злой...:)
Ну пришлите кто-нить мультитап, а я в ответ готовое устройство... А?
--- Конец цитаты ---
Блин, ну чего ты завелся? Я же сказал - в пятницу.
masyanya:
Эт я от жары пухну...:cranky: (ну я жа когда писал ещё не знал что ты в пятницу потопаешь.... :jumpy: ) ...это.... спасибо кстати... за помощь...
Добавлено через 23 часа 59 минут
[/I]Народ!!! Какой репорт сделать для джойстиков в аналоговом/цифровом режиме для переходника?
... сейчас в аналоговом режиме используется:
крестовина - HAT
левый стик - X:Y
правый стик - Z:Rz (ось Z, вращение по оси Z)
кнопки - 10 как в джоях у меня и ещё по докам + 2 (r.s, l.sw - у меня такого нет, но всёравно сделал)
В цифровом:
крестовина - X:Y
кнопки - 10 + 2 (r.s, l.sw)
Переходник сам детектит тип джойстика и выбирает дескриптор сам.
Мож чего поменять? Как удобнее-то сделать?
Rumata:
Да, вроде, нормально. Сколько я видел готовых - они так и сделаны
andrey20111987:
по идеи должнобыть так :
аНАЛОГОВЫЙ РЕЖИМ
крестик: X и Y
левый аналог -вращения кнопка 11
правый анлог - РОV кнопка 12
как у сайтека
 
в цифровом :
левый аналог -Z и rZ
правый анлог - POV
крестик: X и Y
 
и кнопки - start-9 Select-10
 
,а можно добавить в софт возможность выбирать настройку аналога самостоятельно!!! как в PSX дровах
Олег:
Выбираю вариант масяни.
masyanya:
to andrey20111987

--- Цитата ---в цифровом :
левый аналог -Z и rZ
правый анлог - POV
--- Конец цитаты ---


--- Цитата ---цифровом
--- Конец цитаты ---


--- Цитата ---аналог
--- Конец цитаты ---

 ЭТО КАК? :cranky:
andrey20111987:
аналоги -это две пипачки на джоойстике
а аналоговый и цифровой режимы включаются кнопкой Analog на  джойчтике и индикатором режимов является потухший или светящийся светодиод.
masyanya:
ДА БЛ... какие аналоги могут быть в цифровом режиме... В ЦИФРОВОМ РЕЖИМЕ НИКАКИХ "ПИПОЧЕК" НЕТ!!! Цифровой режим это:
* SCPH-1110(analog stick : digital mode)
| 4th byte | L  | DW | R  | UP | ST |  1 |  1 |SEL |
| 5th byte | [] |  X  |  O |
HardWareMan:
masyanya, под "пипочками" есть тоже кнопки. По одной на "пипочку".
masyanya:
Ах вот блин откуда берутся r.sw и l.sw.... всё!!! Понял!!!
sergi:
Уже продаются свободно в принципе переходники PS2/PS3 Converter
Т.е. PS2 то USB к компу

Без драйверов втыкаешь - Винда сама определяет
И работает - правда пока коряво и аналоговый режим постоянно включен

Стоит 500 р всего
Rumata:

--- Цитата: masyanya ---Ах вот блин откуда берутся r.sw и l.sw....
--- Конец цитаты ---
Они же R3 и L3. Правда, на приставке работают только в аналоговом режиме.
Rumata:
Аналоговый:
крест = POV
L стик = ОсьX / Ось Y
R стик = Ось Z / Вращение вокруг оси Z
L3 = 11
R3 = 12

Цифровой:
крест = ОсьX / Ось Y
L стик = нет
R стик = нет
L3 = нет
R3 = нет
sergi:
Самое чего забавно что этот девайс как раз точно такое же диалоговое окно показывает абсолютно
Оно универсально походу для аналоговых джойстиков
А вибрацию предполагает - никто не в курсе?
andrey20111987:
МОДЕР ИСПРАВЬ ОФОРМЛЕНИЕ АТО ПЛ текста невидно!!!!


--- Цитата: masyanya;156256 ---ДА БЛ... какие аналоги могут быть в цифровом режиме... В ЦИФРОВОМ РЕЖИМЕ НИКАКИХ "ПИПОЧЕК" НЕТ!!! Цифровой режим это:
* SCPH-1110(analog stick : digital mode)
| 4th byte | L | DW | R | UP | ST | 1 | 1 |SEL |
| 5th byte | [] | X | O |
HardWareMan:

--- Цитата: andrey20111987;156441 ---Не ..уя в цифровом режиме стики могут работать как аналоги! Ведь Рюмику както удалось в цифровом режиме повесить на стик на ось ХУ. Почитай его программу через блокнотик.
--- Конец цитаты ---

Блин, да скока повторять: в цифровом режиме САМ ДЖОЙСТИК не отдаст состояние аналогов! А то что у Рюмика все повешано всегда на аналоги - это тока так комп видит, но они не будут двигаться когда джой не в аналоге. Совместимость - штука жестокая.
masyanya:
HardWareMan - RESPECT. Я бы сам лучше не написал бы...:)
20 - ого будет MultiTap и, ->

--- Цитата ---софт в делЬфи под переходник
--- Конец цитаты ---
Хер-то, ТОЛЬКО С,С++ или на крайняк #C, "DELPHI - программирование для баб" - это не я сказал это сказал Никлаус Вирт (Niclaus Wirth). Кто не знает, известен как создатель языка Pascal. Мож ещё на FORTRAN'e набабахать? Где я тебе найду DDK под дельфи? (Тут на каком то стайте в форуме надыбал вопрос, - "Где найти дизассемблер чтоб сразу в код паскаля переводил программы?", ржал под столом... типа где найти? мне так проще в програмном коде разбираться. :rofl:  SORRY за OFFTOP)

--- Цитата ---Самое чего забавно что этот девайс как раз точно такое же диалоговое окно показывает абсолютно
Оно универсально походу для аналоговых джойстиков
--- Конец цитаты ---

Так, к делу, штоб развеять весь бред по поводу...ну в общем щас понятно будет.
Почему же почему независимо от того в каком режиме находится джойстик мы видим X, Y, Z, Rz, 12 buttons, POV? А всё веселье в том, что любое HID устройство для USB, способно сообщать свои аппаратные возможности только один раз, при включении. Вот оно и сообщает сразу максимум, чтоб в последствии не "обосраться". На примере,  (мне почемуто всегда казалось что живой пример значительно лучше чем долгая болтовня "на тему"):
В любом, в том числе и в моем устройстве, прежде чем сообщать состояние джойстика драйверу мы должны вначале определится со структурой информационного пакета определяющего состоянии джойстика. Это делает REPORT_DESCRIPTOR, и высылается он по требованию от хоста GET_REPORT_DESCRIPTOR, у меня он выглядит так:
.db 0x05, 0x01    ; USAGE_PAGE (Generic Desktop)
.db 0x09, 0x04    ; USAGE (Joystick)
.db 0xa1, 0x01    ; COLLECTION (Application)
.db 0xa1, 0x01    ; COLLECTION (Logical)
.db 0x85, 0x01    ; REPORT_ID (1)
.db 0x75, 0x01    ; REPORT_SIZE (1)
.db 0x15, 0x00    ; LOGICAL_MINIMUM (0)
.db 0x35, 0x00    ; PHYSICAL_MINIMUM (0)
.db 0x09, 0x01    ;USAGE (Pointer)
.db 0x95, 0x0C    ;REPORT_COUNT (12)
.db 0x05, 0x09    ;USAGE_PAGE (Button)
.db 0x19, 0x01    ;USAGE_MINIMUM (Button 1)
.db 0x29, 0x0C    ;USAGE_MAXIMUM (Button 12)
.db 0x81, 0x02    ;INPUT (Data,Var,Abs)
.db 0x95, 0x01    ;REPORT_COUNT (1)
.db 0x75, 0x04    ;REPORT_SIZE (4)
.db 0x25, 0x07    ;LOGICAL_MAXIMUM (7)
.db 0x46, 0x3b, 0x01;PHYSICAL_MAXIMUM (315)
.db 0x66, 0x14, 0x00;UNIT (Eng Rot:0x114)
.db 0x05, 0x01    ;USAGE_PAGE (Generic Desktop)
.db 0x09, 0x39    ;USAGE (Hat switch)
.db 0x81, 0x42    ;INPUT (Data,Var,Abs,Null)
.db 0x95, 0x04    ;REPORT_COUNT (4)
.db 0x75, 0x08    ;REPORT_SIZE (8)
.db 0x26, 0xff, 0x00 ;LOGICAL_MAXIMUM (255)
.db 0x46, 0xff, 0x00 ;PHYSICAL_MAXIMUM (255)
.db 0x09, 0x32    ;USAGE (Z)
.db 0x09, 0x35    ;USAGE (Rz)
.db 0x09, 0x30    ;USAGE (X)
.db 0x09, 0x31    ;USAGE (Y)
.db 0x81, 0x02    ;INPUT (Data,Var,Abs)
.db 0xc0            ;END_COLLECTION
.db 0xc0                ;END_COLLECTION
А если коротко, то так:
Если первый байт = 1 (нужно для того чтобы рулить несколькоми подключенными джоями, или если в один репрт не влазит), то это состояние джойстика для данного репорта,
следующие 12 бит состояние кнопок,
затем 4 бита состояние HAT(POV),
затем 1 байт - Z
затем 1 байт - Rz
затем 1 байт - X
затем 1 байт - Y
Исходя из репорта, состояние "ничё не нажато" будет выглядеть так:
0-----1-----2----3----4----5
0х01 0х00 0х80 0х80 0х80 0х80
Ну и к чему я всё это, а к тому, что репорт мы сообщаем 1 раз, а переключить джойстик можно из аналогового в цифровой или наоботот режим и после сообщения репорта, вот поэтому и при инициализации высылается "максимальный " репорт, а потом устройиство само в зависимости отрежима работы джоя крнфигурит информативный пакет. То есть у меня например в цифровом режиме 2-ой и 3-ий байт всегда 0х80, а направления Х и У могут быть только 0,0х80,0хFF и складываются в 4-ый и 5-ый байты, а в аналоговом я направления засовываю в HAT (POV). А левый стик в 4-ый и 5-ый байты информативного пакета. Можно конечно и репорт менять в зависимости от того в каком режиме джой, тока постоянно придется перевтыкать USB, то бишь лазить под стол, или постоянно выбырать конфигурацию... помоему так полная жопа.
Короче, намудрил я чё-то, но надеюсь понятно...
andrey20111987:
тогда что ме кажется
я обрал схему и когда подключил то при негоревшем светодиоде левый стик отвечал за ХУ а правый был 13,14,15,16.Батоны
а при аналоговом режиме ,горящем светодиоде левый стик отвечал за вращение, а правый стик за ХУ



А что насчет софта. Будет?
Rumata:
Я тоже не понял. Это мой же скриншот. А где 128 кнопок?
Менять репорт не вижу смысла - и правда гемор

Добавлено через 5 минут
Что до Рюмика...
Радио №1, 2007, стр 30:
"...PSX - 12 кнопок, 1 ось и две ручки управления, причем две кнопки и обе ручки действуют только в "аналоговом" режиме..."
masyanya:

--- Цитата ---Я тоже не понял. Это мой же скриншот. А где 128 кнопок?
--- Конец цитаты ---

Ну я просто сказал что это окошечко прикольно выглядит, а если ставишь 128 кнопок ими весь этот диалог "замощается" и и когда его (этот диалог) собственно открываешь, винда секунды 4-ре живет, а потом вываливается в синий экран смерти... так что я собственно скриншот сделать не успею... короче, не заморачивайтесь... :)
Вплотную подошел к написанию дров..., а точнее уже по ним иду...
5486[/ATTACH]
А вообще-то честно-говоря уже поднадоедает... я чего... единственный знаком с программированием... на форуме...... Мож поможет кто? Ну эт конечно не означает что я не доделаю...
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии