PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Дополнительные устройства (http://pccar.ru/forumdisplay.php?f=177)
-   -   Собственный контроллер резистивного сенсорного экрана, совместимый с Android (http://pccar.ru/showthread.php?t=18930)

s.m. 28.03.2013 14:23

Цитата:

Сообщение от zyxel812 (Сообщение 252840)

Суть-то та же, просто порт как бы другой.

я могу ошибаться, но может быть через блютуз будут поддерживаться мыши с абсолютными координатами, что сведет задачу к написанию калибровочной утилиты

zyxel812 28.03.2013 15:52

Цитата:

Сообщение от s.m. (Сообщение 252893)
я могу ошибаться, но может быть через блютуз будут поддерживаться мыши с абсолютными координатами, что сведет задачу к написанию калибровочной утилиты

Затратно и хлопотно делать bluetooth hid device, тем более что ваше предположение не подтверждено. Если бы точно знать...

А у Андроида курсор не возвращается в верхний левый угол. Такое ощущение, что Андроид попытку сместить курсор за пределы экрана просто игнорирует, а Винда перемещает на максимально возможное расстояние, т.е. к краю экрана.

zyxel812 28.03.2013 15:58

Еще две мысли:
1) Знать бы протокол, по которому Андроид общается с мультитач контроллерами, чтобы "прикинуться" таковым.

2) Может есть программист под Андроид, который смог бы написать службу, которая бы считывала координаты с виртуального COM-порта и программным образом двигала и кликала мышкой, если такое возможно.

VVi3ard 28.03.2013 16:08

Возможно стоит отказаться от эмуляции мыши и использовать другой класс устройства (touch screen device вместо pointer device):
http://source.android.com/tech/input/touch-devices.html

s.m. 28.03.2013 16:39

возможно, нужно покурить здесь http://developer.android.com/tools/h..._concepts.html

zyxel812 28.03.2013 17:19

Цитата:

Сообщение от VVi3ard (Сообщение 252918)
Возможно стоит отказаться от эмуляции мыши и использовать другой класс устройства (touch screen device вместо pointer device):
http://source.android.com/tech/input/touch-devices.html

Нашел вот такой Report Descriptor,
начало вроде понятное - 16 бит каких-то данных, а вот дальше...
там X и Y по 16 бит или X и Y вместе 16 бит? Потом вроде ширина и высота по 16 бит. Кто в этом разбирается, я правильно расшифровал?
Код:

struct {
 uint16_t flags;
 int16_t X;
 int16_t Y;
 int16_t Width;
 int16_t Height;
}


VVi3ard 28.03.2013 17:50

По вашему вопросу не подскажу, но вот набрел на похожую разработку:
https://www.sparkfun.com/tutorials/139

В ней есть алгоритм пересчета координат, возможно вам поможет.

zyxel812 28.03.2013 18:15

Цитата:

Сообщение от VVi3ard (Сообщение 252942)
По вашему вопросу не подскажу, но вот набрел на похожую разработку:
https://www.sparkfun.com/tutorials/139

В ней есть алгоритм пересчета координат, возможно вам поможет.

Они используют Mouse Class Device с передачей абсолютных координат, которые не поддерживаются Андроидом. Я тот же так изначально сделал, в Винде всё работало, в Андроиде нет.

s.m. 28.03.2013 18:18

а если попробовать дизассемблить прогу, которая идет вместе пионером для той же задачи, может там подсказка будет...

zyxel812 28.03.2013 18:27

Когда учился, баловался такими вещами, это вообще жесть.
Я чувствую, решение где-то уже близко. Копать в сторону Touch Digitizer мне кажется правильным. Выше давали ссылку, где было заявлено, что Андроид поддерживает такой класс устройств. Мне осталось найти как правильно описать такое устройство, чтоб Винда и Андроид восприняли мою поделку именно как Touch Digitizer. Я пока не особо разбираюсь в программировании USB, предыдущие мои изделия были основаны на готовых примерах из LUFA. Готового примера для Digitizer нет, сижу разбираюсь в документации.


Часовой пояс GMT +4, время: 08:56.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot