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

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Дополнительные устройства

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2013, 18:44   #21
VVi3ard
Старший Пользователь
 
Регистрация: 05.12.2012
Возраст: 41
Регион: 78, 98
Сообщений: 433
VVi3ard is on a distinguished road
По умолчанию

Я сейчас занят сильно, нет времени гуглить, обрати внимание:
по ссылке http://source.android.com/tech/input/touch-devices.html в конце есть ссылки:
Linux multi-touch protocol
ENAC list of available multitouch devices on Linux

Мне все таки кажется что там тоже может быть полезная информация.
VVi3ard вне форума   Ответить с цитированием
Старый 28.03.2013, 19:12   #22
VVi3ard
Старший Пользователь
 
Регистрация: 05.12.2012
Возраст: 41
Регион: 78, 98
Сообщений: 433
VVi3ard is on a distinguished road
По умолчанию

Вот еще масса информации: http://www.usb.org/developers/hidpage
Нужно смотреть твой код который реализует HID класс "Мышь" возможно там есть комментарии по настройке для другого класса.
Вот от туда инфа от MS
http://msdn.microsoft.com/ru-RU/libr.../gg487435.aspx
http://msdn.microsoft.com/en-us/libr.../gg487437.aspx
VVi3ard вне форума   Ответить с цитированием
Старый 28.03.2013, 21:02   #23
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 41
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию

Товарищи! Работает!
Как световое перо работает и на Андроиде тоже!
Вот с таким дескриптором.
Данные отчета такие:
uint16_t flags; //чтобы не ошибится, позже расшифрую. здесь закодировано прикосновение и наличие пера в поле видимости
int16_t X; //от 0 до 32767 координата Х
int16_t Y; //от 0 до 32767 координата Y
int16_t Width; //Width of contact
int16_t Height; //Height of contact
int16_t Const; //должно быть нулем.

Я еще поэкспериментирую, вроде как последние три поля из дескриптора и, соответственно, отчета можно изъять.

В общем, скоро будет готов контроллер резистивного тача, совместимый с Андроид!
zyxel812 вне форума   Ответить с цитированием
Старый 29.03.2013, 20:43   #24
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 41
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию

Вот и результат: http://www.pccar.ru/showthread.php?t=18943
Отдельное спасибо VVi3ard, благодаря его ссылке на touch screen class device было сэкономлено уйма времени.
zyxel812 вне форума   Ответить с цитированием
Старый 29.03.2013, 21:11   #25
s.m.
Гуру
 
Регистрация: 20.07.2009
Город: Минск
Регион: Беларусь
Сообщений: 1,543
s.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to behold
По умолчанию

Цитата:
Сообщение от zyxel812 Посмотреть сообщение
Вот и результат: http://www.pccar.ru/showthread.php?t=18943
Отдельное спасибо VVi3ard, благодаря его ссылке на touch screen class device было сэкономлено уйма времени.
поздравляю!
если не будет секретом принцип работы калибровочной утилиты - могу написать такую под андроид - решение будет законченным (непонятно сейчас, как будет виден калибровочный порт под андроидом)
__________________
Мой проект: Citroen Xsara Android CarPC
s.m. вне форума   Ответить с цитированием
Старый 29.03.2013, 22:10   #26
mas_u
Старший Пользователь
 
Регистрация: 08.05.2011
Регион: Украина
Машина: Subaru
Сообщений: 233
mas_u is on a distinguished road
По умолчанию

Цитата:
Сообщение от s.m. Посмотреть сообщение
если не будет секретом принцип работы калибровочной утилиты - могу написать такую под андроид - решение будет законченным (непонятно сейчас, как будет виден калибровочный порт под андроидом)
Описание алгоритма для калибровки. Минимальное кол-во точек для калибровки - 3.
Вложения
Тип файла: pdf CalibrationTouch.pdf (169.1 Кб, 812 просмотров)
mas_u вне форума   Ответить с цитированием
Старый 29.03.2013, 23:02   #27
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 41
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию

Цитата:
Сообщение от s.m. Посмотреть сообщение
если не будет секретом принцип работы калибровочной утилиты - могу написать такую под андроид - решение будет законченным (непонятно сейчас, как будет виден калибровочный порт под андроидом)
Отличная новость! Конечно не секрет.
В Андроиде устройство видится как /dev/ttyACM0 (точнее не само устройство, а виртуальный последовательный порт в его составе)

Протокол очень простой и примитивный:
Пакет:
word - 0xFFFF - сигнатура
byte - 0x01 - признак версии
byte - cmd - команда
тут могут быть данные, если того требует команда
byte - crc - контрольная сумма - xor всех предыдущих байт пакета

в ответ придут данные, если они предусмотрены командой и один байт - 0х00 - ошибок нет, 0хFF - что-то не так.

Команды следующие:
0х01 - получить номер версии. В ответ на эту команду придет только один байт - 0х01 без закрывающего нуля. Это команда для проверки того, что мы подключились к правильному устройству.

0х0A - Получить состояние. В ответ придут:
byte x - последнее измеренное значение по оси Х
byte y - последнее измеренное значение по оси Y
byte touched - 1 - в данный момент есть прикосновение, 0 - прикосновения нет
и закрывающий 0.

0x0B - Выключить мышь. Нужно подавать эту команду перед калибровкой. Устройство перестанет передавать прикосновения в компьютер. Данные можно будет получить только по последовательному порту. В ответ придет только один байт - 0х00

0х0С - Включить мышь. Выдавать после окончания калибровки. В ответ придет только один байт - 0х00

0х0D - Записать калибровочные данные:
int32 - kx
int32 - ky
byte - dx
byte - dy
word - xsize
word - ysize
не забываем про crc.
В ответ придет один байт - 0х00.

Общий порядок калибровки:
1) Выключаем мышь, командой 0х0В
2) Просим пользователя прикоснуться куда-нибудь в верхний левый угол, и в цикле считываем значения измерений x и y командой 0х0А. В зачет идут только те результаты, в которых флаг touch = 1. На основе нескольких десятков измерений, вычисляем средний x и y.
3) Повторяем процедуру для правого нижнего угла.
На основе полученных данных, вычисляем dx,dy,kx,ky. (xsize и ysize задуманы для передачи контроллеру размеров экрана, но на данный момент не используются.)
4) Записываем результаты в контроллер, командой 0х0D
5) Включаем мышь командой 0х0С.

Теперь о том, что такое dx, dy, kx, ky.
Устройство посылает в компьютер отчет, который содержит координаты X и Y в виде чисел от 0 до 32767. При этом, 0 соответствует самой левой части экрана (или самой верхней), 32767 - самой правой части экрана (или самой нижней). Нужно пересчитать значения от 0 до 255, полученные с АЦП в числа от 0 до 32767, передаваемые в компьютер.
Формула в контроллер заложена такая.
X = kx*(adc_x - dx)/65536
Y = ky*(adc_y - dy)/65536
где Х,Y - числа от 0 до 32767, передаваемые в компьютер
adc_x, adc_y - значения измерений, получаемых с АЦП.

Этой информации, как мне кажется, достаточно чтобы написать калибровочную утилиту. Если остались вопросы, спрашивай.
zyxel812 вне форума   Ответить с цитированием
Старый 29.03.2013, 23:09   #28
zyxel812
Старший Пользователь
 
Регистрация: 18.02.2013
Возраст: 41
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
zyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to allzyxel812 is a name known to all
По умолчанию

Цитата:
Сообщение от mas_u Посмотреть сообщение
Описание алгоритма для калибровки. Минимальное кол-во точек для калибровки - 3.
Это так. Я указал, что проект не совсем закончен, но уже работоспособен. Я упростил калибровку сознательно, исходя из следующего: При таком низком разрешении измерений (8 бит) отклонение в параллельности сенсорной панели и экрана не заметно. Т.е., принимаем как константу, что сенсорная панель параллельна экрану. И, так как мы не собираемся компенсировать поворот сенсорной панели относительно экрана, достаточно двух точек калибровки.
zyxel812 вне форума   Ответить с цитированием
Старый 30.03.2013, 17:18   #29
VVi3ard
Старший Пользователь
 
Регистрация: 05.12.2012
Возраст: 41
Регион: 78, 98
Сообщений: 433
VVi3ard is on a distinguished road
По умолчанию

Цитата:
Сообщение от zyxel812 Посмотреть сообщение
Вот и результат: http://www.pccar.ru/showthread.php?t=18943
Отдельное спасибо VVi3ard, благодаря его ссылке на touch screen class device было сэкономлено уйма времени.
Спасибо за упоминание моего ника Не уверен что я достоин но спасибо.

Не хотите написать свою статью на HABR? Я думаю вы в процессе разработки убедились что в рунете информации по данной теме нет, и ваша статья на хабре многим бы помогла. Плюс возможно там найдется 1-2 человека которые смогут помочь улучшить вашу разработку.

Ведь для многих CARPC шников вопрос подключения штатного тача весьма актуален.
VVi3ard вне форума   Ответить с цитированием
Старый 30.03.2013, 20:37   #30
macau
Старший Пользователь
 
Регистрация: 22.10.2012
Регион: 78, 98
Сообщений: 758
macau is just really nicemacau is just really nicemacau is just really nicemacau is just really nice
По умолчанию

а разве такой контроллер не работает в ондроеде?
macau вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



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


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