Serg_Sm 0 26 мая, 2015 Опубликовано 26 мая, 2015 · Жалоба Есть резистивный тач-скрин, подключен через арм AT91SAM7S64 и TSC2046. HID report 0x05,0x0D, //Usage Page (Digitizer) 05 0D 0x09,0x02, //Usage (Pen) 09 02 0xA1,0x01, //Collection (Application) A1 01 0x85,0x01, //Report 01 85 01 0x09,0x20, //Usage (Stylus) 09 20 0xA1,0x00, //Collection (Physical) A1 00 0x09,0x42, //Usage (Tip Switch) 09 42 0x09,0x32, //Usage (In Range) 09 32 0x15,0x00, //Logical Minimum (0) 15 00 0x25,0x01, //Logical Maximum (1) 25 01 0x75,0x01, //Report Size (1) 75 01 0x95,0x02, //Report Count (2) 95 02 0x81,0x02, //Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 0x95,0x06, //Report Count (6) 95 06 0x81,0x03, //Input (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03 0x05,0x01, //Usage Page (Generic Desktop) 05 01 0x09,0x30, //Usage (X) 09 30 0x75,0x10, //Report Size (16) 75 10 0x95,0x01, //Report Count (1) 95 01 0x55,0x0D, //Unit Exponent (-3) 55 0D 0x65,0x11, //Unit (SI Lin: Length (cm)) 65 11 0x15,0x00, //Logical Minimum (0) 15 00 0x26,0xE7,0x03, //Logical Maximum (1000) 26 00 70 0x35,0x00, //Physical Minimum (0) 35 00 0x46,0xC4,0x54, //Physical Maximum (1000) 46 00 70 0x81,0x02, //Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 0x09,0x31, //Usage (Y) 09 31 0x15,0x00, //Logical Minimum (0) 15 00 0x26,0xE7,0x03, //Logical Maximum (1000) 26 00 40 0x35,0x00, //Physical Minimum (0) 35 00 0x46,0x58,0x34, //Physical Maximum (1000) 46 00 40 0x81,0x02, //Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 0xC0, //End Collection C0 0xC0, //End Collection C0 Соответсвенно репорт: ID (1 байт), Tip Switch и In Range (1 байт) и X, Y (по 2 байта). Если просто подключить, загрузить восьмерку дождаться появления рабочего стола и нажимать на тачскрин - работает без проблем. Но стоит только во время загрузки нажать на экран, т.е. будут передаваться координаты нажатия (и установленные два бита TS/IR естественно) вместо нулей, то после заргузки тач-скрин не работоспособен. При этом, судя по аппаратному USB-анализатору, никаких проблем нет - данные (через interrupt endpoint) успешно передаются, в диспетчере устройств тоже порядок. Что этому виндосу ещё не хватает? PS: Монитор вьюсоник с мультитач работает нормально во всех ситуациях, но у него и репорт в 4 раза больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg_Sm 0 27 мая, 2015 Опубликовано 27 мая, 2015 · Жалоба В журнале windows при любом подключении тач-скрина появляется предупреждение: "Указывающее устройство не имеет сведений о мониторе, к которому оно присоединено". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg_Sm 0 28 мая, 2015 Опубликовано 28 мая, 2015 · Жалоба Если кому интересно, получилось у меня заставить работать Touch Screen и при нажатии до полной загрузки. Информацию брал отсюда. Как мне показалось - Windows 8.1 нормально понимает только мульти-тач. Вот сам работающий репорт (на запрос Contact Count Maximum возвращаю 2): 0x05, 0x0d, // USAGE_PAGE (Digitizers) 0x09, 0x04, // USAGE (Touch Screen) 0xa1, 0x01, // COLLECTION (Application) 0x85, 0x01, // REPORT_ID (Touch) 0x09, 0x20, // Usage (Stylus) 0xa1, 0x02, // COLLECTION (Logical) 0x09, 0x42, // USAGE (Tip Switch) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x75, 0x01, // REPORT_SIZE (1) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x95, 0x07, // REPORT_COUNT (7) 0x81, 0x03, // INPUT (Cnst,Ary,Abs) 0x75, 0x08, // REPORT_SIZE (8) 0x09, 0x51, // USAGE (Contact Identifier) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x05, 0x01, // USAGE_PAGE (Generic Desk.. 0x09, 0x30, // Usage (X) 0x75, 0x10, // Report Size (16) 0x95, 0x01, // Report Count (1) 0x55, 0x0D, // Unit Exponent (-3) 0x65, 0x11, // Unit (SI Lin: Length (cm)) 0x26, 0xE7, 0x03, // Logical Maximum (1000) 0x35, 0x00, // Physical Minimum (0) 0x46, 0xC4, 0x54, // Physical Maximum (21620) 0x81, 0x02, // Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 0x09, 0x31, // Usage (Y) 0x46, 0x58, 0x34, // Physical Maximum (13400) 0x81, 0x02, // Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 0xc0, // END_COLLECTION 0x05, 0x0d, // USAGE_PAGE (Digitizers) 0x09, 0x54, // USAGE (Contact count) 0x25, 0x7f, // LOGICAL_MAXIMUM (127) 0x75, 0x08, // REPORT_SIZE (8) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x85, 0x02, // REPORT_ID (Feature) 0x09, 0x55, // USAGE(Contact Count Maximum) 0x25, 0x02, // LOGICAL_MAXIMUM (2) 0xb1, 0x02, // FEATURE (Data,Var,Abs) 0xc0, // END_COLLECTION PS: В общем если Windows считает сенсорный экран поддерживающим максимум одно нажатие (в журнале появляется запись: "Указывающее устройство поддерживает ввод только одним пальцем."), то на этапе загрузки системы и нажатии на экран она перестаёт на него реагировать. Для проверки всего лишь убрал "Contact Identifier". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ProBoDiS 0 18 января, 2016 Опубликовано 18 января, 2016 · Жалоба Вот сам работающий репорт (на запрос Contact Count Maximum возвращаю 2): Здравствуйте! Тоже пытаюсь реализовать мультитач, но на Teensy 3.1. Пока проблема в том, что виндой распознается только одно касание, второе почему-то игнорируется.. Наверное потому что я как раз-таки не передаю Contact Count Maximum. Этот параметр следует передавать в любой или какой-то определенный момент? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg_Sm 0 1 февраля, 2016 Опубликовано 1 февраля, 2016 · Жалоба Здравствуйте! Тоже пытаюсь реализовать мультитач, но на Teensy 3.1. Пока проблема в том, что виндой распознается только одно касание, второе почему-то игнорируется.. Наверное потому что я как раз-таки не передаю Contact Count Maximum. Этот параметр следует передавать в любой или какой-то определенный момент? Всего лишь нужен ответ на этот запрос. Запрашивает ОС - в репорте (в моём сообщении выше) всё уже учтено. Достаточно ответить на запрос, отослав допустимое число нажатий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться