Как стать автором
Обновить
10
0

Mobile Developer

Отправить сообщение
Данный метод возвращает размер переданных данных либо ошибку (Возвращает -1). Ошибка не имеет различных кодов, есть только факт возникновения.
У UsbDeviceConnection есть еще метод controlTransfer, который тоже может использоваться, но насколько мне известно только для передачи управляющих команд через нулевую конечную точку, через которую идет энумерация. Насчёт USART, как я уже говорил, не уверен, возможно и через либу. Видел в сети варианты использования, так что в случае необходимости решение найти можно
Если честно не понимаю о каких дескрипторах и репортах классического Bluetooth идет речь. Впервые слышу о подобных вещах.

Если речь идет про протокол HID натянутый поверх Bluetooth, то это просто протокол HID, который по идее спецификой USB не является. можно пользовать где угодно. Вот только отношения к Bluetooth я так и не просек)

Согласен, к тому же я заметил, что android работает и с interrupt конечными точками через булк методы. Подробное поведение нигде не описано, так что можно схватить не логичное поведение

Если речь идет о USB классе VCP, то свои VID и PID там не нужны, можно использовать те, которые предоставляет STM для устройств на базе их контроллеров. STM также предоставляет драйвера под ОС для работы с подобными устройствами. Но если ваш проект планирует развиваться на рынке, VID и PID приобрести рано или поздно придется, а также написать свой драйвер для ОС.
Для коммерческих продуктов стандартный драйвер не всегда хорошая идея. К примеру драйвер VCP под Windows просто ужасный. Позволяет все прекрасно запустить на малых скоростях и небольших объёмах данных, но шаг вправо, шаг влево и драйвер выдает удивительные вещи. Попробуйте предавать по VCP с STM большой объем данных и при этом щелкать мышкой на ПК (знаю, звучит глупо), на котором вы принимаете данные. Уверяю Вас, часть данных вы не получите.
Про ODROID почему-то все забыли. А Ведь он тоже весьма хорош)

Извините, но я с Вами не согласен. Да, с одной стороны характеристики и сервисы в bluetooth low energy действительно напоминают usb hid report, но только по структуре разве что. На этом сходства заканчиваются. Работают они абсолютно по разному. Я хотел даже привести здесь пример различий, но понял, что привести его достаточно сложно, потому что отличается все кроме этой самой структуры.

Я так понимаю Вы говорите именно про Bluetooth, безотносительно к USB.
Насколько мне известно Android смартфон мог играть роль Device достаточно давно по крайней мере в Bluetooth Low Energy. В классическом Bluetooth это вероятно является нововведением, к сожалению не знаю, так как при разработке чаще пользовался BLE — стабильнее работает, по крайней мере со стороны embedded железки (точнее соотношение цена/стабильность получше)

1. Мне на самом деле сложно предположить. Если говорить в контексте этой статьи, то как я уже говорил считаю использование USB HID, да в общем и остальных классов для взаимодействия с периферийным устройством с телефона/планшета архитектурнй ошибкой проекта, в котором все это используется. С однопланиками все понятно, там вероятно есть смысл, но в таком случае туда сам собой напрашивается Linux. Но опять же подчеркну, все зависит от задачи.

Что касается использования USB в смартфонах в отрыве от статьи, прогнозировать сложно, но мне на данный момент сложно предположить подобное развитие событий именно для android смартфонов. USB протокол прост в реализации на уровне железа, программный стек достаточно хорошо подходит почти для всех задач и прекрасно отработан и документирован. Изменение типа разъема, спецификации и прочего это одно, а вот убрать разъем целиком, это совсем другое дело. Согласен, большую часть стандартных вещей можно и без USB провернуть, даже дебажить можно по Wi-Fi. Но боюсь закрыть все дыры таким образом не получится. К тому же я не по совсем понимаю, зачем его убирать. С разъемом наушников все понятно, а вот USB… Чип USB стоит немного, небольшой по размеру, если его убрать, места на плате не сильно уменьшится. К тому же текущая тенденция увеличения размера экрана, позволяет об этом не париться. Если речь идет о размере разъема, то если уже и он мешает, то я не знаю, насколько тонкие телефоны нужны человечеству)

2. Кастомизация происходит на уровне периферийного устройства, к Android отношения не имеет, если речь идет о host. VID и PID придется приобрести, правда не во всех случаях)) FDTI — это не к USB. Сам протокол он не реализует, а является лишь преобразователем интерфейса. К слову о FTDI, USART на Android, насколько мне известно, тоже можно потрогать из Вашего Application
Возможно не совсем правильно понимаю суть всех трех вопросов, но попробую ответить:
1. Решение прекрасно ложиться на телефоны/планшеты на android, так как нет никаких видимых причин на изменение поведения. Работа с USB хорошо документирована, поддерживается (возникают новые методы, устаревают старые) гуглом и нет предпосылок к изменению этого в будущем.

2. Опять же не вижу причин не попасть в Google Play. Политика гугл в этом отношении сейчас достаточно жесткая, но конкретно к работе с USB, каких-то особых требований я не видел. К тому же, как правило, все что Вам нужно сделать, это в манифесте задекларировать uses-feature, остальное Google Play сделает за Вас. Вероятно у Вас возникают сомнения, когда вы видите слово Custom. Но это напрямую относится к периферийному устройству, но даже с его сертификацией, проблем не возникнет (если вы приобрели свой VID и PID). С точки зрения Android, каких то отклонений от нормы нет.

3. Не могу Вам ответить на этот вопрос, не смотрел. Но опять же повторю, протокол достаточно стандартизирован, и если у Apple есть возможность дотянуться до USB из вашего application, Вы с большой вероятностью сможете легко подружить его с Вашим периферийным устройством.

Повторюсь, основная магия все равно идет в железе на периферийном устройстве, по причине того, что в данном случае Android используется, как host. Вероятно, если вы захотите использовать Android в качестве device, то Вам придется пережить все танцы с бубном, связанные с дескрипторами, но это уже немного другой уровень погружения в usb стек, хоть и тоже весьма поверхностный
Хах, насколько мне известно нет, проект был — проект успешно завершен. Но я уверен, что не Вы один сталкиваетесь с подобными задачами) Но я все таки считаю, что это не совсем правильное архитектурное решение. Вероятно использование Linux было бы более приемлемым решением. Хотя, опять же, зависит от конкретной задачи и конечной цели
Особенно с учётом того, что информации здесь практически нет)
Верно, но и представленный вариант имеет право на существование. Статья не о том, как тестировать, а о том как быстро накидать сервер для тестирования. Конечно, можно тесты написать, можно использовать открытые API, для проверки работоспособности и т. д.)

НО, из вашего комментария можно выудить одну очень важную вещь: Писать тесты надо, всегда)
У меня динамичный ip. За статичный ip, как правило необходимо доплачивать и ожидать подключения. Мне необходимо было решение здесь и сейчас, на коленках)

Мне хотелось попробовпть так, к тосу же я прикрутил авторизацию и хотел прикрутить регистрацию пользвателей по номеру телефона с отправкой смс.

Каждому свое, кому-то удобнее так, кому-то

Нет, на данный момент не пробовал, но планирую в ближайшее время начать. Mesh сети доступны и на nRF51 и на nRF52, в том числе на Bluetooth 4.0 с библиотеками SoftDevices S110, S130 и S132. Библиотеки для mesh-сетей можно скачать на офф. Сайте Nordic

[дублирующий комментарий, удалено]

ZigBee это ZigBee)) Опять же, дальность может зависеть от того, как вы разведете антенну, какая конфигурация платы будет. Надо пробовать...

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность