1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Как проверить 3-кнопочную Serial мышь в msdos?

Тема в разделе "Hard & Soft", создана пользователем M210, 10 июл 2021.

  1. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Всем привет!
    Делаю Serial (COM) мышь на Ардуино. В планах на будущее сделать активный USB->COM переходник. Пока что, Я управляю мышью с помощью Ардуиновского джойстика, реализовал 2 кнопки, они работают (и их работу легко проверить), а вот проверить среднюю кнопку мыши не могу, т.к. у меня нет программ, которые могут использовать эту кнопку.

    Как проверить работу всех 3х кнопок? Может быть есть какие-нибудь тестовые программы? Или подскажите DOS игру, которая могла бы использовать 3ю кнопку
     
  2. Редрум2

    Редрум2

    Регистрация:
    12 янв 2018
    Сообщения:
    996
    Знаю WINDOWS игру, которая использует 3ю кнопку.
     
  3. SlashNet

    SlashNet

    Регистрация:
    13 дек 2008
    Сообщения:
    1.819
    M210 нравится это.
  4. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Спасибо, что откликнулся. Прога немного не та что, мне нужна. Я на ней вижу, что мышь отсылает данные в комп, когда я нажимаю на 3ю кнопку мыши, а вот те ли это данные - непонятно.

    Если вдаваться в теорию, то при нажатии на левую кнопку мыши, мышь шлет 0х60, 0х0, 0х0 - и этот пакет работает, его легко проверить. А вот средняя кнопка мыши полна загадок, т.к. изначально в протоколе не было поддержки 3й кнопки. В итоге 3я кнопка мыши вроде бы шлется 4м байтом...мой девайс шлет 0х40 0х0, 0х0, 0х20 если кнопка нажата и 0х40 0х0, 0х0, 0х00 если отпущена...некоторые источники пишут, что в 4м байте есть и данные о колесе мыши...Но так как данные разнятся и ни Windows ни MSDOS не реагирует на нажатие 3й кнопки, значит толи я что-то не так делаю, толи нужна особая прога, которая покажет, что "сейчас 3я кнопка нажата", а вот "сейчас она отпущена"
     
    Последнее редактирование: 11 июл 2021
  5. SlashNet

    SlashNet

    Регистрация:
    13 дек 2008
    Сообщения:
    1.819
    Мне когда-то давно попадался тестер мышки: на экране псевдографикой была нарисована мышь (трёхкнопочная) с визуализацией нажатия. Возможно, с каким-то драйвером мышки для доса. Но сейчас (через 20 лет) просто не вспомню что это было.

    P.S.: Кстати, вспомнил название CuteMouse и с этим драйвером есть тестер. В досбоксе запустил - есть опрос третьей кнопки. Но оно не похоже на мои воспоминания. :)

    CuteMouse
     
    M210 нравится это.
  6. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Хм, и правда работает :) Я почему то когда сначала ее запустил, у меня ничего не получилось....а сейчас работает)) Теперь я вижу, что у меня работает колесо мыши, а 3я кнопка - нет) Буду разбираться
    --- добавлено 11 июл 2021, предыдущее сообщение размещено: 11 июл 2021 ---
    Ну вот, все готово. Средняя кнопка оказывается, не работала, потому что можно выставить либо поддержку колеса, либо поддержку 3й кнопку...странно как то. Либо чтобы выставить все сразу, нужно писать какую-то другую инициализацию
     
  7. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.028
    Предполагается устройство только для DOS, или нечто универсальное, что будет полностью совместимо с той же стандартной COM мышью со скролом в винде?
     
  8. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Хотелось бы универсальное, но как я понял, таже 3я кнопка в Винде не работает, похоже ей тоже нужен особый драйвер?
     
  9. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.028
    Там должно хватать стандартного мышиного COM драйвера для мышей со скроллом.
     
  10. Улахан Тойон

    Улахан Тойон

    Регистрация:
    23 сен 2015
    Сообщения:
    1.892
    Wolf3D (b2 - использовать), DooM (MID BUTTON - вперед), Quake (MOUSE3 - обзор мышью).
     
    M210 нравится это.
  11. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Проверил, работает :) В Думе оказывается еще и на двойной клик отрываются двери.

    А может ли кто-то проверить, правда ли при подключении COM мышки можно сразу ей пользоваться? Мне это кажется странным, т.к. в этот момент на RTS не приходит питание, а отправка кода инициализации в ПК не приводит к обнаружению мыши. Собственно хотелось бы понять как Винда определяет подключение мыши и как-то исправить в своей железке.

    20210711_171814.jpg

    А в целом я закончил COM часть кода, 3 кнопки работают, колесо работает и в Досе и в Винде.

    Еще один странный момент в том, что если загрузить Винду со вставленной USB мышкой, тогда COM мышь не опрашивает 3ю кнопку и колесо, т.е. работает в обычном Microsoft режиме. А если загрузить Винду без USB устройств, тогда COM работает как надо - с 3мя кнопками и колесом, хотя определяется как стандартная Serial мышь.

    И если проинциализировать мышку в Logitech режиме, тогда в Досе такая мышь работает и работает в 3х-кнопочном режиме, а в Винде после определения Logitech Mouse перестает принимать все сигналы. Возможно потому что Винда хочет принимать сигналы с конфигом порта 8N1, а не 7N1, но проверять я это не буду, т.к. Досе тогда перестанет работать.
     
  12. Улахан Тойон

    Улахан Тойон

    Регистрация:
    23 сен 2015
    Сообщения:
    1.892
    Это был большой-большой секрет. Так можно узнать кто на самом деле играл DooM в 90-ых.
    Думаю это зависит как определяется мышь, какой именно драйвер использует. Например, USB-клавиатуры могут использовать разные драйвера.
     
  13. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    В 90-ых я был "трактористом" :) (Надеюсь, этот термин еще не забыт?)
     
  14. Улахан Тойон

    Улахан Тойон

    Регистрация:
    23 сен 2015
    Сообщения:
    1.892
    "Танковое управление".

    Тракторист - которую все упоминают, на деле оказывается - бульдозеристом, танкистом, крановщиком. Где используют не руль и педали (газа/тормоза/сцепление), а система (два) рычагов и тяги.
     
  15. Gamecollector

    Gamecollector

    Регистрация:
    23 сен 2016
    Сообщения:
    2.410
    По стандарту подключение устройства к последовательному порту -- только в выключенном состоянии. То, что порт обычно выдерживает скачки напряжения до 15 В, поэтому и при горячем подключении редко когда горит синим пламенем -- не панацея. :)
     
  16. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.028
    Я на одной из материнок тестового стенда спалить COM1 умудрился таки. :)
     
  17. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Не, меня не скачки интересуют, а как Винда понимает, что в порт что-то воткнули? И понимает ли вообще? Порт в этот момент не опрашивается
     
  18. TheMadLynx

    TheMadLynx

    Хелпер

    Регистрация:
    9 июн 2015
    Сообщения:
    7.323
    Разумеется нет. У PS/2, LPT и COM портов отсутствует возможность горячего подключения. Любое устройство подобного типа должно быть подключено до загрузки компа в его полностью выключенном состоянии. Все "хитрости" о том, как можно заставить устройство на этих портах определиться и заработать без выключения и перезагрузки компа, относятся к тому же уровню извращений, что и прикуривание от дуговой сварки. Возможно, конечно, но...

    Ограниченный перечень устройств винда на этих портах опрашивает при загрузке. Полноценные поиск и обнаружение можно запустить из панели управления через мастер обнаружения новых подключенных устройств.
     
  19. Uka

    Uka

    Переводчик

    Регистрация:
    21 окт 2012
    Сообщения:
    29.804
    Странно. Я вроде бы помню, что в руководстве пользователя к моей первой мышке (купленной в 1993 году) было сказано: "При подключении к порту СОМ устройством можно пользоваться сразу; при подключении к порту PS/2 потребуется предварительно выключить и снова включить компьютер".
    Надо будет проверить...
     
    M210 и Улахан Тойон нравится это.
  20. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    960
    При нажатии клавиш или перемещении мыши её контроллер отправляет пакеты на COM-порт. При получении пакета активируется IRQ, вызывая драйвер, соответствующий порту.
    Сама Windows не может определить тип подключенного устройства, поэтому драйвер (мыши) требуется установить заранее (ххмм... и он должен быть активным) или после подключения устройства.
    P1450763_.jpg P1450765_.jpg
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление