![]()  | 
	
		
			
  | 
	|||||||
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | 
| 		
			
			 | 
		#21 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 05.12.2012 
				
				Возраст: 42 
				
Регион: 78, 98 
					Сообщений: 433
				 
				
				![]()  | 
	
	
	
	
		
			
			 Я сейчас занят сильно, нет времени гуглить, обрати внимание:  
		
	
		
		
		
		
		
	
	по ссылке http://source.android.com/tech/input/touch-devices.html в конце есть ссылки: Linux multi-touch protocol ENAC list of available multitouch devices on Linux Мне все таки кажется что там тоже может быть полезная информация.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#22 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 05.12.2012 
				
				Возраст: 42 
				
Регион: 78, 98 
					Сообщений: 433
				 
				
				![]()  | 
	
	
	
	
		
			
			 Вот еще масса информации: 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  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#23 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Товарищи! Работает! 
		
	
		
		
		
		
			Как световое перо работает и на Андроиде тоже! Вот с таким дескриптором. Данные отчета такие: 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; //должно быть нулем. Я еще поэкспериментирую, вроде как последние три поля из дескриптора и, соответственно, отчета можно изъять. В общем, скоро будет готов контроллер резистивного тача, совместимый с Андроид! 
				__________________ 
		
		
		
		
	
	ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#24 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Вот и результат: http://www.pccar.ru/showthread.php?t=18943 
		
	
		
		
		
		
			Отдельное спасибо VVi3ard, благодаря его ссылке на touch screen class device было сэкономлено уйма времени. 
				__________________ 
		
		
		
		
	
	ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#25 | |
| 
			
			
			
			 Гуру 
			![]() Регистрация: 20.07.2009 
				
				
				
Город: Минск 
Регион: Беларусь 
					Сообщений: 1,543
				 
				
				![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Цитата: 
	
 если не будет секретом принцип работы калибровочной утилиты - могу написать такую под андроид - решение будет законченным (непонятно сейчас, как будет виден калибровочный порт под андроидом) 
				__________________ 
		
		
		
		
	
	Мой проект: Citroen Xsara Android CarPC  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#26 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 08.05.2011 
				
				
				
Регион: Украина 
Машина: Subaru 
					Сообщений: 233
				 
				
				![]()  | 
	
	
	
	
		
			
			 Описание алгоритма для калибровки. Минимальное кол-во точек для калибровки - 3. 
		
	
		
		
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#27 | |
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Цитата: 
	
 В Андроиде устройство видится как /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 - значения измерений, получаемых с АЦП. Этой информации, как мне кажется, достаточно чтобы написать калибровочную утилиту. Если остались вопросы, спрашивай. 
				__________________ 
		
		
		
		
	
	ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			 | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#28 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 18.02.2013 
				
				Возраст: 43 
				
Город: Санкт-Петербург 
Регион: 78, 98 
Машина: e46 
					Сообщений: 163
				 
				
				![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 Это так. Я указал, что проект не совсем закончен, но уже работоспособен. Я упростил калибровку сознательно, исходя из следующего: При таком низком разрешении измерений (8 бит) отклонение в параллельности сенсорной панели и экрана не заметно. Т.е., принимаем как константу, что сенсорная панель параллельна экрану. И, так как мы не собираемся компенсировать поворот сенсорной панели относительно экрана, достаточно двух точек калибровки. 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	ibus2hid Touch Controller USB I2S вход 1NeedBMWK76m1vWukagfGKH3kLaJkXcSYK - для спасибо  
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#29 | |
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 05.12.2012 
				
				Возраст: 42 
				
Регион: 78, 98 
					Сообщений: 433
				 
				
				![]()  | 
	
	
	
	
		
			
			 Цитата: 
	
   Не уверен что я достоин но спасибо. Не хотите написать свою статью на HABR? Я думаю вы в процессе разработки убедились что в рунете информации по данной теме нет, и ваша статья на хабре многим бы помогла. Плюс возможно там найдется 1-2 человека которые смогут помочь улучшить вашу разработку. Ведь для многих CARPC шников вопрос подключения штатного тача весьма актуален.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#30 | 
| 
			
			
			
			 Старший Пользователь 
			![]() Регистрация: 22.10.2012 
				
				
				
Регион: 78, 98 
					Сообщений: 758
				 
				
				![]() ![]() ![]() ![]()  | 
	
	
	
	
		
			
			 а разве такой контроллер не работает в ондроеде? 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	В работе Китайнедожып+медиацентр на андроиде  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
![]()  | 
	
	
		
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
		
  | 
	
		 |