Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
L-Card E14-140M подключение к АндроидуЗдравствуйте. Нужно подключить L-CardE14-140M к Андроиду через USB. Просьба подсказать, как можно сделать такое подключение? Правильно ли я понял, что для подключения к Андроиду нужно реализовать lusbapi в нужном объёме с использованием Android SDK? Не нашел, где скачать исходники lusbapi? |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуПривет по моему вот ссылка с архивом |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуСамораспаковывающийся архив библиотеки Lusbapi v.3.4 с исходными текстами, примерами и и т.д. |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуПолучилось сделать несколько шагов. Устройство успешно находится из кодов на андроиде (java). Получаем информацию об устройстве, получаем точки IN и OUT, получаем доступ к устройству (открытие устройства успешно выполняется). Но не получается обменяться данными с устройством. По аналогии кодов из Lusbapi пытают отработать команды: Формирую 8-байтную команду в JAVA так: data[0] = 0x00; data[2] = v; data[4] = 0x00; data[6] = 0x00; и передаю в устройство через UsbEndpoint типа USB_DIR_OUT таким вызовом: Функция успешно отрабатывает. Возвращается, что 8 байта записано. Ни одного байта не удалось прочитать. Может возникнут какие-нибудь идеи, почему не работает обмен данными с устройством? Ещё некоторые нюансы: |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуПравильно ли я понимаю, что LUsbApi взаимодействует с драйвером устройства? Исходя из документации это Ldevusbu.sys. Если это так, тогда не получится написать взаимодействие с устройством на Андроиде без знаний, что делает драйвер с командами и с ответами? |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуLUsbApi работает через драйвер ldevusbu.sys. принцип там такой. через ControlPipe передаются медленные команды это DiviceIoControl и там пакет InBuf[4] и возврат данных массивом (см GetArray PutArray), а когда сконфигурирован потоковый ввод или вывод, то используется ReadFile WriteFile для откачки данных и это уже по BulkPipe. |
|||
|
||||
|
Re: L-Card E14-140M подключение к Андроидуте надо не bulkTransfer, а controlTransfer я думаю. |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуPoulCh пишет:
Спасибо! |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуЧерез mConnection.controlTransfer(...) успешно вызываем и получаем корректный ответ на стандартные USB запросы: Параметры заполнялись так:
сам вызов
- возвращает 2 байта, как и положено
сам вызов
- возвращает 18 байт с данными, как и положено Сейчас пытаюсь отработать вендорную команду:
В LUsbLib она объявлена так:
При вызове V_GET_MODULE_NAME в LUsbApi используется ещё вот эта константа:
Сам вызов, если минимизировать:
Пока не получается воспроизвести V_GET_MODULE_NAME через controlTransfer(...). Перебрал много вариантов с найденными константами, но ответа от устройства не удалось получить. Не понятно, какую константу в какой параметр нужно передать? Подскажите, пожалуйста ▼Скрытый текст |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуDeviceIoControl так пакет формирует для DIOC_SEND_COMMAND WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR( |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуPoulCh пишет:
Спасибо! Команда V_GET_MODULE_NAME успешно отработала и вернула "E140". Изучаю Lusbapi.h, Lusbapi.cpp, E140.h, E140.cpp |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуPoulCh пишет:
Пожалуйста, подскажите как в драйвере формируются пакеты для остальных запросов?
|
|||
|
||||
|
Re: L-Card E14-140M подключение к Андроидупервый запрос с usb не общается, можно не реализовывать. reset и abort вроде не имеют прямых аналогов в Android API |
|||
|
||||
|
Re: L-Card E14-140M подключение к АндроидуAnatoliy2 пишет:
Здравствуйте. Подскажите пожалуйста получилось ли у вас что-нибудь в итоге? Есть ли подвижки? |
|||
|
||||
|
Re: L-Card E14-140M подключение к Андроидуk0de пишет:
Да, удалось практически всё, что было нужно - чтение и установка параметров, чтение данных. На этом этапе проект остановился из-за человеческого фактора ))) Все нужные части исходников библиотеки lcard были портированы как есть с переориентированием на свою прослойку для работы с USB устройством на андроиде: Единственное, за ненадобностью не реализовывали функцию: Спасибо @PoulCh за ответы на вопросы. |
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск