Список форумов meos.sysbin.com meos.sysbin.com
Портал моей оси!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

У кого есть 4D mouse PS/2 ?
На страницу Пред.  1, 2, 3, 4  След.
 
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов meos.sysbin.com -> Драйвера
Предыдущая тема :: Следующая тема  
Автор Сообщение
k@sTIg@r



Зарегистрирован: 21.02.2007
Сообщения: 49

СообщениеДобавлено: Thu Apr 05, 2007 7:06 am    Заголовок сообщения: Ответить с цитатой

Кстати о птичках!
У меня ядро давно(относительно) понимает третью кнопку мыши. Там оказалось все просто. В файле hid/m_ps2.inc (или как он там) нужно было всего лишь заменить
and [BTN_DWN],3
на
and [BTN_DWN],7
то есть не обнулять 3-й бит(который отвечает за 3-ю кнопку мыши).
Хотел прикрутить еще и скролл, но не все так просто оказалось как хотелось, не смог найти нормальные доки. В тех что указаны выше все классно описывается, но руки еще не добрались...
я вообще удивлен насчет 3-го бита, зачем его было принудительно занулять??? Конечно я незнаю как поведет себя 3-й бит при простой дву-кнопочной мышке, может в том была причина....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
k@sTIg@r



Зарегистрирован: 21.02.2007
Сообщения: 49

СообщениеДобавлено: Fri Apr 20, 2007 9:10 am    Заголовок сообщения: Ответить с цитатой

Дополнил драйвер ps/2 мыши.
Теперь при детекте определяется тип мыши (простая 3-х кнопочная, 3к со скролом или 5-кнопочная со скролом), пока такие.
Добавлены 37.7 (получить тип мыши, соответственно 0/1/2) и 37.8 получить данные скролла.
Как работает скролл. Используется общая переменная, которая хранит сумарное смещение (кол-во щелчков) скроллера с момента последнего прочтения. Значение доступно только активному окну, все остальные получают 0. Значение также обнуляется при потере фокуса (ввиду того что используется общая переменная).
Также теперь 37.2 возвращает 5 значимых бита.
http://ifolder.ru/1743781 взять можно тут. В архиве несжатое ядро и mouse.asm, который показывает тип вашей мышки, состояние кнопок и действие скроллинга.

минуса:
- ядро не пускает ланчера(по крайней мере у меня) был вязт вчерашний trunk. (это не мой бок)
- детект почему-то происходит с задержкой, там конечно добавился код но я не думал что он может такую задержку делать (использовались mouse_cmd и mouse_read, может в них дело).
- хотя это скорей всего бок моей мыши. Нет никаких проверок на переполнение, поэтому если очень быстро вращать скролл, то положительное смещение становится отрицательным, а отрицательное положительным. Было проверено в винде - тоже самое.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Fri Apr 20, 2007 9:22 am    Заголовок сообщения: Ответить с цитатой

k@sTIg@r
А ты уверен, что разные производители придерживаются одного стандарта?
Вернее стандарта как такового вообще нет. Не возникнет ли проблем с мышами других производителей?
Хотя теоретически первый скроллер более-менее стандартизирован и Винда его встроенными средствами поддерживает (проверял на шариковом COM Genius c одним скроллером).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
k@sTIg@r



Зарегистрирован: 21.02.2007
Сообщения: 49

СообщениеДобавлено: Fri Apr 20, 2007 9:40 am    Заголовок сообщения: Ответить с цитатой

Нет конечно. Кто может быть в этом уверен?
Во-первых, это касается только ps/2.
Кстати, возможен глюк с ком-мышами. А именно в плане 37.7, может вернуть чушь. Это легко подправить.
Во-вторых, это стандартный драйвер. Если у кого-то специфическая мышь, то придется использовать свой драйвер.
Кстати у меня была мысль не модифицировать файлы ядра а написать драйвер, который просто функции подменит. Но подумал, что сейчас практически у каждого, у кого ps/2 мыша, 3-кнопочная со скролом, а ядро предлагает только 2-х кнопочную. Так что. Но при желании, могу изменения вынести в отдельный драйвер. Не вижу в этом проблем.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
k@sTIg@r



Зарегистрирован: 21.02.2007
Сообщения: 49

СообщениеДобавлено: Fri Apr 20, 2007 9:43 am    Заголовок сообщения: Ответить с цитатой

забыл - я ядро впринципе и выложил чтобы потеститли.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Fri Apr 20, 2007 10:00 am    Заголовок сообщения: Ответить с цитатой

k@sTIg@r
Цитата:
Но подумал, что сейчас практически у каждого, у кого ps/2 мыша, 3-кнопочная со скролом, а ядро предлагает только 2-х кнопочную.

Это известная фишка (не понимаю, почему ни у кого руки не дошли, в том числе и у меня), против этого возражений нет абсолютно никаких.
Проблема может возникнуть со скроллером, и потому название "стандартный драйвер" сильно притянуто за уши. Smile
Стандартным он будет не у всех и лучше действительно поддержку скроллеров выносить в отдельный драйвер, но это на будущее.
Сегодня вечером посмотрю то, что ты сделал. Правда отписать получится не раньше понедельника.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
k@sTIg@r



Зарегистрирован: 21.02.2007
Сообщения: 49

СообщениеДобавлено: Fri Apr 20, 2007 10:15 am    Заголовок сообщения: Ответить с цитатой

Согласен. Прикинув я вижу что будут проблемы с 2-мя скролерами. Ядро конечно не рухнет, да и кнопки будут работать, а вот скрол врядли будет правильно работать.
Тогда вынесу в отдельный драйвер.
Хотя насчет 3-й кнопки. Есть объективное мнение, почему не была реализована 3-я кнопка? Есть проблемы с 2-кнопочными? или так, на всякий случай?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Fri Apr 20, 2007 10:59 am    Заголовок сообщения: Ответить с цитатой

k@sTIg@r
Цитата:
Хотя насчет 3-й кнопки. Есть объективное мнение, почему не была реализована 3-я кнопка? Есть проблемы с 2-кнопочными? или так, на всякий случай?

Скорее всего, из-за отсутствия стандартной реализации 3 кнопки в COM мыши. При этом получается неравнозначность - на PS2 мышах есть кнопка, а на COM нету, а если на третью кнопку повесят достаточно важную функцию, то пользователь с COM мышью будет заведомо в ущемленном положении.
Я пытался написать реализацию для COM мышей третьей кнопки, но у меня в наличии была лишь мышь Genius с 3-я кнопками. А реализация протокола 3 кнопки у разных фирм разная.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ghost



Зарегистрирован: 20.03.2006
Сообщения: 179
Откуда: Новосибирск

СообщениеДобавлено: Fri Apr 20, 2007 12:50 pm    Заголовок сообщения: Ответить с цитатой

в некоторых системах, две нажатых кнопки (правая + левая) = нажатию средней кнопки, но тут может оказатся что комуто нужно одновременно нажимать кнопки )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ленин



Зарегистрирован: 04.04.2007
Сообщения: 64
Откуда: Belarus, Minsk

СообщениеДобавлено: Fri Apr 20, 2007 9:02 pm    Заголовок сообщения: Ответить с цитатой

Пользователь с COM мышью уже по определению ущемлён, причём самим собой. Лично я последний раз видел COM мышь, когда работал на старом добром 386DX.
_________________
mike.dld in my veins
Я, равно как mike.dld, mike.dld|w или Tom Sawyer, не несу никакой ответственности за надпись под моим ником, слева от этого поста.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора MSN Messenger
Ленин



Зарегистрирован: 04.04.2007
Сообщения: 64
Откуда: Belarus, Minsk

СообщениеДобавлено: Sun Apr 22, 2007 12:23 am    Заголовок сообщения: Ответить с цитатой

Проверил - работает. Задержки при определении не заметил, хотя и не старался. Лаунчер у меня запустился. Добавляй проверку на переполнение - и в транк.
В скором времени прикручу к Tinypad'у.

PS: Logitech RX300
_________________
mike.dld in my veins
Я, равно как mike.dld, mike.dld|w или Tom Sawyer, не несу никакой ответственности за надпись под моим ником, слева от этого поста.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора MSN Messenger
Heavyiron



Зарегистрирован: 27.01.2006
Сообщения: 586
Откуда: Belarus, Minsk

СообщениеДобавлено: Sun Apr 22, 2007 11:31 am    Заголовок сообщения: Ответить с цитатой

+1
Logitech M-BT58. Все работает корректно, ланчер запускается. Проверил в qemu, vmware и на реальной системе.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mario79
Site Admin


Зарегистрирован: 19.05.2005
Сообщения: 1966
Откуда: РФ, г. Челябинск

СообщениеДобавлено: Mon Apr 23, 2007 4:46 am    Заголовок сообщения: Ответить с цитатой

k@sTIg@r
Проверил на реальной системе. Работает. Оба скроллера на моей мыши воспринимаются как один - видимо нужно учитывать какой-то дополнительный бит. Мышь A4-Tech WOP-35 (5 кнопок, 2 скроллера).
Только непонятно почему при прокрутке вверх число останавливается на 0? Получается дальше данные игнорируются.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
k@sTIg@r



Зарегистрирован: 21.02.2007
Сообщения: 49

СообщениеДобавлено: Mon Apr 23, 2007 9:59 am    Заголовок сообщения: Ответить с цитатой

Ленин
Ты не понял, проверка на переполнение отсутствует в железе. Для Z-indexa выделено только 4 бита, 1 знаковый 3 значимых. То есть можно успеть сделать восемь щелчков скрола, пока обрабатываются 4 пакета от мышки. Без понятия как это обойти. Но я проверил в виндах - тож самое. При интенсивной прокрутке страниц (firefox, pspad, остальные не пробовал) вниз, страница иногда проскакивает вверх. У меня тоже Logitech, видимо они забили на это на уровне железа, посчитали что не возможно переполнить эти 3 бита.
Ланчер запустился? хм..... тогда какого он у меня не пускается???
Ну если задержки не заметил, это хорошо.

Mario79
нет, данные не игнорируются. Это в моей программе стоит ограничение (спроси зачем - скажу не знаю). Посмотри в исходнике - увидишь, что к переменной прибавляется значение, возвращаемое ф-цией 37.8. Если результат меньше 0, то он обнуляется.
Да, со 2 скроллом проблемы. Дополнительных битов нет. Пытаюсь вникнуть - вот что описано в стандарте
Цитата:
There are mice with two scrolling wheels, one vertical and the other horizontal. These mice use the Microsoft Intellimouse data packet format as described above. If the vertical wheel is scrolled upward, the Z-counter is incremented by one and if that wheel is scrolled down, the Z-counter is decremented by one. This is normal operation for a scrolling wheel. However, if the horizontal wheel is scrolled right, the Z-counter is incremented by two and if it is scrolled left, the Z-counter is decremented by two. This seems like an odd way to implement the second scrolling wheel, but it works since the placement of the two wheels make it virtually impossible to use both of them at the same time (and if you try to trick the software and use both at the same time, it will ignore the horizontal wheel).

Тобишь, горизонтальный скролл инкрементит и декрементит 2 единицы. Тогда получается, что отсутствует совместимость, с односкроловыми мышами. И для нормальной работы придется делать отдельный драйвер. Жаль у меня нет такой мыши, потестил бы. Кста, если есть возможность попробуй поставить стандартный драйвер односкроловой мыши для винды и проверь как себя будет вести горизонтальный скролл.

И во вторых. Были тут обсуждения. Дополнительные режими вносить в ядро или все же в отдельный драйвер. Начал писать драйвер, но увидел как это сложно, слишком слабый интерфейс. Но все же можно....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Serge



Зарегистрирован: 08.03.2006
Сообщения: 1010

СообщениеДобавлено: Mon Apr 23, 2007 10:07 am    Заголовок сообщения: Ответить с цитатой

k@sTIg@r

Если есть вопросы по дровам пиши мне.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Quick Reply
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов meos.sysbin.com -> Драйвера Часовой пояс: GMT
На страницу Пред.  1, 2, 3, 4  След.
Страница 2 из 4

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by www.phpbb.com