User Tag List

Страница 5 из 9 ПерваяПервая 123456789 ПоследняяПоследняя
Показано с 41 по 50 из 107

Тема: Вектор-06Ц. подключение USB-мыши.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,716
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    224 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Контроллер может и приращения сам накапливать и отдавать вектору по мере опроса, просто он может делать это в формате, который получает от мыши.
    Регистры 4 и 5 именно в таком формате и содержат данные.
    Для USB-мыши, стандарт - это целое со знаком, от -128 до +127.

    На тестах я пытался перемещать (дёргать) мышь с максимально возможной скоростью, получил пиковые скорости перемещения в пределах 80-90 пикселей за 20мс. Это уже адаптированная для Вектора скорость.
    Последний раз редактировалось KTSerg; 18.08.2024 в 12:04.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,424
    Спасибо Благодарностей отдано 
    768
    Спасибо Благодарностей получено 
    2,374
    Поблагодарили
    1,322 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хорошо, насчет "делать это в формате, который получает от мыши" я погорячился, реализовать это 1 в 1 не очень хорошо. Основная проблема, которую хотелось бы преодолеть - потеря точности. Движение курсора - частная задача, и подгонять мышь к разрешению вектора - так себе вариант для мыши 2024 года. Лучше бы оставить полную точность добавив регистр или даже два с младшими частями смещений, которые, как понимаю, сейчас отбрасываются.

    - - - Добавлено - - -

    Хотя бы в варианте для ВУ.

  4. #3

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,716
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    224 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Решил погуглить по поводу чувствительности сенсора мыши.
    Ни когда не задумывался, оказывается есть такой параметр DPI, и он от 400 до 5000 dpi (пикселей на дюйм), если верить хухлу.
    И моя мышь имеет 1200dpi, собственно около 480 пикселей на 1см.
    Значит с реальным "контроллером мыши", с разными мышами, скорости перемещения могут отличаться.

  5. #4

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,716
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    224 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновил вложение в первом сообщении.
    Заменил исходники на актуальную версию теста контроллера с 9-ю регистрами.

    Где-то я аркрноида адаптировал под PS/2-мыщь, найду, переделаю под порт D4h.

    Этот пользователь поблагодарил KTSerg за это полезное сообщение:

    svofski(18.08.2024)

  6. #5

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,424
    Спасибо Благодарностей отдано 
    768
    Спасибо Благодарностей получено 
    2,374
    Поблагодарили
    1,322 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не понимаю, зачем и 4-5 и 6-7. При желании можно преобразовывать в векторе или "процедурно" или таблицей, если нужно побыстрее. Вместо этого точно полезнее добавить младшие части смещений.

  7. #6

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,716
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    224 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Не понимаю, зачем и 4-5 и 6-7. При желании можно преобразовывать в векторе или "процедурно" или таблицей, если нужно побыстрее. Вместо этого точно полезнее добавить младшие части смещений.
    Ну "понесло" меня на разнообразие представления одних и тех-же данных...
    Думал ещё выделить регистры для эмуляции формата джойскиков. Типа при смещении мыши со скоростью больше некоего значения (для защиты от дребезга) - выставлять в регистрах соответствующие джойстикам биты направлений и кнопок.
    Но пока продолжаю считать, что джойстик из мыши - совсем не юзабельная фигня.

    Свободные регистры есть, могу и эти (отрезанные от смещения) 3 бита воткнуть в отдельные регистры.
    Только что туда будут передавать в эмуляторах (если эмуляция контроллера появится) ?
    При эмуляции ведь этих "отрезанных бит" не будет.

    На самом деле, разнообразные варианты представления манипуляций с мышью, вталкиваю к контроллер, для предоставления возможности как можно проще адаптировать уже имеющиеся программы, под применение мыши.
    Поскольку при адаптации готовых (старых) программ, каждый байт "на вес золота", то прочитать данные из порта, которые подойдут для интеграции в данную программу, значительно удобнее, чем ещё и преобразовывать их, после получения, пытаясь подогнать под условия задачи.

    Будешь дразнить, я в этот контроллер ещё и USB-клавиатуру воткну... хотя пока не собирался

    Во вложении первого сообщения добавил адаптированный под контроллер вариант "arkanoid".

    - - - Добавлено - - -

    Я тут где-то пургу нёс про представление смещения в PS/2-мышах...
    Откудава я взял, что там только положительные значения, а флаг направления отдельно - я не имею представления
    В PS/2-мышах, смещение также как в usb-мышах, 8бит целое со знаком (-128 ... +127), и ещё (не понятно для чего) отдельно флаг "отрицательного значения".
    Последний раз редактировалось KTSerg; 18.08.2024 в 12:50.

  8. #7

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,424
    Спасибо Благодарностей отдано 
    768
    Спасибо Благодарностей получено 
    2,374
    Поблагодарили
    1,322 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    К адаптации старых программ под мышь отношусь умеренно скептически. Что имеет смысл адаптировать - (нормальные) графические редакторы (наверно Draw и хватит) и подходящие игры, типа Minesweeper, Ветка, карточные и игры на доске (шахматы, шашки, реверси и т.п.).
    Цитата Сообщение от KTSerg Посмотреть сообщение
    Свободные регистры есть, могу и эти (отрезанные от смещения) 3 бита воткнуть в отдельные регистры.
    Только что туда будут передавать в эмуляторах (если эмуляция контроллера появится) ?
    При эмуляции ведь этих "отрезанных бит" не будет.
    Если правильно сделать эмуляцию, то там будет примерно то же самое, что и в железном контроллере.

  9. #8

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,324
    Спасибо Благодарностей отдано 
    1,037
    Спасибо Благодарностей получено 
    820
    Поблагодарили
    491 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я сейчас глянул на тему чуть более внимательно, чем раньше, потому что у меня заработала USB-клавиатура и я потихоньку морально готовлюсь к тому, чтобы может быть подключить и мышь. Но пока по-моему сыровато. Интересно ставить эксперименты, они должны что-то показать, но в конце труха должна отпасть и должен остаться один ясный и понятный способ. Проблему адаптации старых программ я понимаю, но разделяю здоровый скепсис ivagor-a, поэтому не хочется делать калеку ради того, чтобы адаптировать две-три старые программы.

    Предлагаю смещения передавать в таком виде:
    * X смещение со знаком / 8
    * X смещение со знаком % 8
    * Y смещение со знаком / 8
    * Y смещение со знаком % 8
    Это даст перемещения с удобной для Вектора скоростью и точность для тех случаев, где она может быть понадобится.

    Про абсолютные координаты я уже не раз высказывался, но вижу, что эта идея не умрет просто так от моего напряженного взора. В конце концов мне не жалко.

    Объясни, почему в эмуляции должны возникнуть какие-то проблемы с младшими битами?
    Больше игр нет

  10. #9

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,716
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    224 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    ...
    Объясни, почему в эмуляции должны возникнуть какие-то проблемы с младшими битами?
    Если этот вопрос ко мне, то разве я говорил, что при эмуляции могут возникнуть какие-то проблемы с младшими битами скорости перемещения мыши?
    Я говорил о том, что для эмуляторов Вектора они не пригодятся, а с реальным контроллером, при их использовании курсор мыши становится слишком чувствительным к перемещениям самой мыши, и носится по экрану как угорелый, не возможно точно позиционировать. Вот и пришлось "замедлять" до "комфортной" скорости, отбрасывая 3 младших бита скорости.

    Эти 3 младшие бита "скорости" - это 3 младших бита чувствительности сенсора мыши.
    Обычная мышь имеет чувствительность 1200 пикселей на 2.5см (дюйм) смещения.
    Обычный экран РС (при разрешении 1280х1024) курсор мыши пробегает за 2.5 см смещения мыши по коврику, это если в настройках не снижена чувствительность мыши. Обычно мышь нужно сместить примерно на 5 см.
    У реального Вектора экран 256х256, при обычной чувствительности сенсора, курсор будет пробегать от края до края за 0.53см смещения мыши по коврику.
    Вопрос: Это очень удобно?
    Я в реальном контроллере, отбросил 3 младшие бита "скорости", т.е. чувствительности сенсора, и получил чувствительность 150 пикселей на 2.5см смещения мыши по коврику.
    Т.е. экран Вектора 256 пикселей курсор будет проходить за чуть меньше 5см смещения мыши (300 пикселей за 2 дюйма смещения).
    Эта скорость очень сильно отличается от скорости смещения мыши по экрану РС ?

    Нет, я конечно понимаю, что сейчас только я пользуюсь старым монитором с разрешением 1280х1024, а почти у всех остальных мониторы с разрешением 3840 x 2160 и всем пользователям эмулятора Вектора понадобится точно позиционировать каждую 1/64 площади каждого пикселя на экране Вектора, для этого им нужны будут эти 3 отброшенные бита скорости.
    И я повторюсь, мне не жалко.
    Последний раз редактировалось KTSerg; 19.08.2024 в 10:23.

  11. #10

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,324
    Спасибо Благодарностей отдано 
    1,037
    Спасибо Благодарностей получено 
    820
    Поблагодарили
    491 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Если этот вопрос ко мне, то разве я говорил, что при эмуляции могут возникнуть какие-то проблемы с младшими битами скорости перемещения мыши?
    Я неточно выразился. Но ты сказал, что:
    Цитата Сообщение от KTSerg Посмотреть сообщение
    Только что туда будут передавать в эмуляторах (если эмуляция контроллера появится) ?
    При эмуляции ведь этих "отрезанных бит" не будет.
    Исправляю вопрос -- почему не будет отрезанных бит при эмуляции? Потому что координаты курсора в сообщениях винды привязаны к пикселям? Тут тоже есть много деталей. Как ты точно подметил, сейчас мало кто может позволить себе запустить эмулятор с увеличением 1х на современных мониторах, так что 1/4 пикселя будет не редкость. Кроме того, перемещения курсора можно получать через WM_INPUT и они будут в нативном разрешении мыши, ну или по крайней мере в каком-то минимально пережеванном. Это может быть нужно не для супбиксельного позиционирования курсора, а для плавного движения какого-нибудь предмета в игре, например.
    Больше игр нет

Страница 5 из 9 ПерваяПервая 123456789 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 574
    Последнее: 23.08.2024, 09:14
  2. Ответов: 82
    Последнее: 04.07.2022, 12:10
  3. Ответов: 1
    Последнее: 27.04.2022, 11:52
  4. Ответов: 15
    Последнее: 20.01.2022, 17:03
  5. Ответов: 4
    Последнее: 23.06.2016, 00:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •