| Приставки > Джойстики и прочие манипуляторы |
| Подключение приставочных джойстиков через 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] А вообще-то честно-говоря уже поднадоедает... я чего... единственный знаком с программированием... на форуме...... Мож поможет кто? Ну эт конечно не означает что я не доделаю... |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |