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. Улахан Тойон

    Улахан Тойон

    Регистрация:
    23 сен 2015
    Сообщения:
    1.892
    Подтверждаю, PS/2 требуется инициализироваться при тестировании/проверки с CMOS/BIOS (не при инициализации Операционной Системы), можно (по горячему) переключить PS/2-устройство к другому вычислительному машине.
     
  2. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Ну ладно, значит тогда со своим контроллером я закончил, больше ничего прикрутить не смогу.
    А в этой книге ничего не сказано про скорость опроса мыши?

    Где-то читал, что мышь шлет со скоростью 40 пакетов в секунду, но если посылать по 4 байта (со средней кнопкой и колесом), то 40 раз не получается... Хотя и по расчетам не должно получаться, 4 байта это 32 бита, и при скорости порта 1200bps, получается 37,5 пакетов в секунду - если пробовать посылать с большей скоростью, тогда просто появляются лаги. И значит PC мышь, которая отправляет 5 байт - еще медленнее работает
     
  3. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.030
    Э... ЗАЧЕМ 5 байт?
    32 бита могут передать положение 32-х кнопок. Нужно всего 4 бита на кнопки и 2 бита на вращение колеса.
     
  4. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    960
    Microsoft Mouse (две кнопки) использует пакеты по три байта. Каждый байт из семи бит плюс стартовый и стоповый биты. Контроль чётности отсутствует. В результате 1200/7-N-1. Для передачи одного байта используется девять бит, трех байт - 27 бит. Максимальное количество передаваемых за секунду пакетов 1200/27~44 штуки.
    Для пакетов больших размеров это число будет меньше.
    Теоретически возможна работа мыши и её драйвера при скоростях передачи больше 1200 бит/с.
    Примечание: для COM-порта бит в секунду и бод в секунду можно считать эквивалентными, т.к. бод соответствует количеству бит, переданных в секунду.

    Добавлю еще несколько страниц про COM-порт.
    P1450774_.jpg P1450776_.jpg P1450779_.jpg P1450780_.jpg
     
    M210 нравится это.
  5. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Как это зачем? :) Мышиный протокол не я разрабатывал, зачем там 5 байт, надо у создателя Mouse Systems Protocol спрашивать :D

    4 последних байта - для скоростей XY

    3 бита на кнопки и 3 бита на колесо, если быть точнее, ну по-крайней мере в Microsoft Protocolе.
    3й бит в колесе для того, чтобы отличать +Z от -Z...он для знака в общем. Максимальные значения скорости колеса в итоге получаются от -8 до +8 (всего 16 значений)

    Поэтому я и написал, что 40 не получается...но видимо это нормальное явление и мешать не будет :)
    2х-кнопочную реализацию я не учитываю, т.к. с 3мя кнопками веслее, хотя конечно в адаптере предусмотрел переключение режимов....мало ли, может быть эти 44 пакета будут как то влиять на ощущения пользования мышью (сейчас пока это проверить не могу, т.к. мышью управляю 4х-позиционным джойстиком, а для подключения USB мышки мне пока не приехали нужные железки...на джойстике ощущения не те...там разницу и между 20 и 40 пакетами не заметишь))))
    Последние две страницы были особенно полезны, придется добавить в мою железку DTR контакт, посмотрю как он себя ведет...может именно этого мне и не хватает - PnP
     
    Последнее редактирование: 13 июл 2021
    Колючий нравится это.
  6. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.030
    Да, о том, что мышь - это не только кнопки с колесом, я полностью забыл. :)
     
  7. Gamecollector

    Gamecollector

    Регистрация:
    23 сен 2016
    Сообщения:
    2.410
    При загруженном драйвере -- может и так.
    Мышь -- пассивное устройство, при её горячем подключении-отключении шансы поджарить электронику порта ещё меньше, чем обычно. Но повторюсь -- официально последовательный порт на горячее подключение не рассчитан.

    З.Ы. Мне попадались люди, искренне уверенные, что PS/2 мышь и клавиатуру можно спокойно втыкать и вынимать при включенном системнике. "Ни разу ничего не горело", ага... :) А вообще -- в 1987-м (дата принятия RS-232D и спецификации на порт PS/2) было не до горячего подключения и Plug and Pray...
     
    Колючий нравится это.
  8. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Всем привет.
    Завершаю разработку устройства, все получается :)



    Но заметил, что курсор обновляется реже, чем USB мышь, это сильно заметно в играх, при поворотах например в Doom, возникает ощущение, будто игра статерит... типа управление происходит рывками. Это вообще нормально для COM мышей по сравнению с USB, или нужно пилить какое-нибудь сглаживание?

    Другими слова, кто может проверить, комфортно ли играть в Doom или другие шутеры на COM мышах, возникают ли у вас дергания картинки при поворотах с помощью мыши?
    --- добавлено 31 июл 2021, предыдущее сообщение размещено: 31 июл 2021 ---
    Здесь я попытался записать эти самые стартеры, вроде заметны отличия между COM мышью и USB мышью. В видео первый 30 секунд использую COM, потом с 30сек до 1мин - USB, потом опять COM

     
  9. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.030
    Я на тестовом стенде принципиальной разницы не заметил, когда пришлось ставить COM мышь при подыхании PS/2 порта.
     
  10. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Ps/2 мышь быстрее COM где-то раза в 2, что не сильно много, может поэтому разницы не видно.

    В моему случае, COM мышь не способна отправлять пакеты чаще 30мс, поэтому я решил сделать так - накапливаю данные с USB, а через 20мс отправляю их в COM порт. Если посылать данные в COM порт сразу по приходу данных с USB мышь работает вроде поплавнее, но появляются лаги, запаздывания, и курсор продолжает двигаться когда физическая мышь находится в покое, т.к. пакеты на передачу накапливаются в очередь. Это запаздывание небольшое, где-то 0.5секунд по ощущениям, но все же заметно
     
  11. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    960
    На сколько помню, в DOOM максимум 35 кадров в секунду. Т.е. между кадрами примерно 28 мс и более.
    Идея с задержкой перед передачей не самая удачная. Тем более с неравными и некратными интервалами на устройствах (приемном и передающем). Общее время одной передачи (цикла) будет "плавать". Идеальный вариант - жесткая синхронизация, скорее всего, невозможна для USB (можно посмотреть варианты для монопольного использования интерфейса и организацию обмена с HID-устройствами).
    Когда тестировал подключение датчиков с COM-интерфейсом через CP210x к USB компьютера при ожидаемом цикле порядка 5 мс были задержки до 1500 мс.
     
  12. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Никогда не сталкивался с такими явлениями :)) Всегда все работало так как и задумывалось.
    На счет USB синхронизации - она и не нужна, во-первых USB опрашивает контроллер, опрашивает каждый тик, но ничего не мешает опрашивать USB реже или через определенные промежутки времени.
    А для COM порта, ниразу не слышал, чтобы игра посылала какой-то сигнал синхронизации, и вряд ли это вообще имеется, тем более в железной COM мыши всего 4 провода - земля, питание, RX, TX, при этом как я понимаю RX не используется, мышь только шлет данные в порт и никогда ничего не принимает
     
  13. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    960
    В моем случае не было необходимости искать причину и устранять её. Подключение к USB было сервисным, увеличили Timeout цикла обмена. При подключении датчиков к COM-порту задержки были в пределах ожидаемых.
    Стоит учитывать, что при тестировании выполнялись десятки миллионов циклов.

    В вашем случае пакеты идут в одну сторону. Следовательно, и задержки возможны, скажем, до 700 мс.
     
  14. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Сейчас попробовал отключить задержку на передачу КОМ порта, наверно да, оставлю без задержки. Мышь стала более-менее плавной (если не брать в расчет быстрые скорости, но шариковые мыши на таких скоростях и не работали, шар проскальзывал бы :)) Тайминги передачи COM порта просто заставляют USB мышь опрашиваться медленнее и все работает хорошо - разница только теперь в том, что упала чувствительность мыши, нужно больше двигать рукой, чтобы например развернуться на 180 градусов в DOOMе, но помоему именно так и было в старые времена.
     
  15. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    960
    Так и должно быть.
    Если к системе под управлением Windows 95 подключить USB-мышь (через поддержку в BIOS), то курсор будет метаться как угорелый. С обычной USB-мышкой, не высокого разрешения сенсора.
     
  16. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Это хорошо :) Побегал в Quake2 с "новой логикой" вроде все ок, за исключением акселерации (но это уже претензии к Винде а не к мыши :))
     
  17. mide

    mide

    Регистрация:
    13 дек 2017
    Сообщения:
    109
  18. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Тут такое дело: в Win98 после какого-то обновления PS/2 мышь начинает работать чуть ли не в десять раз плавнее. Досконально не разбирался, поскольку всегда ставил полный пакет обновлений.
     
  19. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Совет хороший, но прога не работает в Win98, а ставить на ретроПК XP а то и 7ку я не стану.

    Зато вспомнил про народный тест мышек:
    На картинке красный цвет - мышь, работающая через COM порт
    Синий цвет - таже самая мышь, работающая через USB

    Вот теперь нужно "снять" такую же картинку с реальной COM мыши.
    Просто в mspaint сделайте пару оборотов мыши на "максимальной" для руки скорости :)
     

    Вложения:

    • mouse_test.png
      mouse_test.png
      Размер файла:
      18,7 КБ
      Просмотров:
      79
  20. mide

    mide

    Регистрация:
    13 дек 2017
    Сообщения:
    109
    Компа с COM и XP\7 вообще нигде нету?
    Программа визуализирует update time, frequency, velocity, etc.
    example.png example1.png example2.png

    COM 45Hz
    USB 125Hz (USB2 до 1kHz)
    Америку давно открыли в datasheet.
    1с=1000мс
    1000\45=~22.222
    1000\125=8
    Посчитайте свою максимальную скорость руки в мм\с и дальше школьный курс физики :)
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление