Работа с мышью

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
pirumov
beginner
beginner
Сообщения: 10
Зарегистрирован: 22 май 2013, 10:10
Версия LabVIEW: 2012
Контактная информация:

Работа с мышью

Сообщение pirumov »

Хотим сделать прибор к датчику которого будет закреплена мышь (без корпуса) для считывания координат этого самого датчика. Как считывать координаты мыши относительно экрана - примеры есть, но хочется сделать как-бы "бесконечные координаты", т.е. привязываться к вручную заданному началу координат и от него рассчитывать расстояния (координаты...) которые могут уходить в неизвестные "дали" .
Спасибо за помощь и советы при подготовке такой программы!
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Работа с мышью

Сообщение IvanLis »

Мне кажется, что возможности датчика мышки сильно преувеличены.
Лучше использовать связку энкодер -> МК -> RS-232 -> LabVIEW

Если именно с мышкой, то посмотрите функции из библиотеки user32.dll.
Там вроде есть функция, которая возвращает изменение координат относительно предыдущего состояния. Интегрируя данные можно считать положение в пространстве. Только название функции я не помню сейчас и не знаю, позволит ли выйти за пределы экрана.
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Работа с мышью

Сообщение Super Star »

а зачем вылазить за пределы экрана? сдвиг произошел, посмотрели куда, выставили координаты в центр
я люблю свою работу.... Я приду сюда в субботу ...
pirumov
beginner
beginner
Сообщения: 10
Зарегистрирован: 22 май 2013, 10:10
Версия LabVIEW: 2012
Контактная информация:

Re: Работа с мышью

Сообщение pirumov »

Super Star писал(а):а зачем вылазить за пределы экрана? сдвиг произошел, посмотрели куда, выставили координаты в центр
кстати мысль.., но что делать если это перемещение больше экрана...
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1337
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 44 раза
Контактная информация:

Re: Работа с мышью

Сообщение AndreyDmitriev »

Вам надо научиться работать с мышью в RAW режиме, то бишь напрямую. В идеале, кстати, сделать вообще так, чтобы мышь не определялась операционной системой как HID устройство - иначе замучаетесь. Проще может оказаться - взять ардуинку, к ней присоединить мышь, а данные от неё по последовательному порту в компьютер передавать.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Работа с мышью

Сообщение Jakob Brontfeyn »

pirumov писал(а):Хотим сделать прибор к датчику которого будет закреплена мышь (без корпуса) для считывания координат этого самого датчика. Как считывать координаты мыши относительно экрана - примеры есть, но хочется сделать как-бы "бесконечные координаты", т.е. привязываться к вручную заданному началу координат и от него рассчитывать расстояния (координаты...) которые могут уходить в неизвестные "дали" .
Спасибо за помощь и советы при подготовке такой программы!
Понимаю, подкупает простота и дешевизна устройства,
может также и механическая безконтакность если мышь оптическая.

Смотрите пример в теме:
http://www.labviewportal.org/viewtopic. ... 171#p25144


Может и это будет полезно также:
http://www.labviewportal.org/viewtopic. ... 778#p36772
http://www.labviewportal.org/viewtopic. ... 778#p36778

PS: могу оказать помощь в построении подобных устройства на базе
простейшей дешевой вебкамеры и лазерной указки. Одно из применений
демонстрировалось на конференции в РУДН 2010, смотрите здесь:
http://labviewportal.org/viewtopic.php? ... =90#p23892
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Работа с мышью

Сообщение Super Star »

pirumov писал(а):
Super Star писал(а):а зачем вылазить за пределы экрана? сдвиг произошел, посмотрели куда, выставили координаты в центр
кстати мысль.., но что делать если это перемещение больше экрана...
но как? Поиграйте в любую стрелялку, сколько куда не крутитесь, всегда курсор в центре экрана (перекрестие)
я люблю свою работу.... Я приду сюда в субботу ...
Dubovitsky

Автор
junior
junior
Сообщения: 52
Зарегистрирован: 21 дек 2010, 12:11
Награды: 1
Версия LabVIEW: 2011
Контактная информация:

Re: Работа с мышью

Сообщение Dubovitsky »

Если всё происходит на обычном компе с обычной ОС, не RT-контроллере, то помогут функции User32.dll:GetCursorPos и User32.dll:SetCursorPos, сначала выставить курсор в центр экрана, затем в цикле с достаточно высокой частотой читать координаты, снова выставлять в центр и вычислять изменение прочитанных относительно центра, а их уже использовать для вычисления абсолютных координат.
Только надо не забыть сделать полностью клавиатурное управление программой, иначе будет трудно работать - мышь будет недоступна.
Вложения
Получить позицию
Получить позицию
GetMouseXY.png (13.42 КБ) 4396 просмотров
Установить позицию
Установить позицию
SetMouseXY.png (13.32 КБ) 4396 просмотров
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Работа с мышью

Сообщение Super Star »

Dubovitsky писал(а): иначе будет трудно работать - мышь будет недоступна.
можно схитрить и добавить условие, что есть "мышь" на аплекейшене, то ничего не изменять.
соответственно апплекейшен выставлять в центре экрана и сворачивать\разворачивать альт+таб
я люблю свою работу.... Я приду сюда в субботу ...
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»