Удачи!

у отправлять сигналы через последовательный порт, используя классы API JavaComm на устройстве Android, и вот как я это себе представляю:

1 - Android-устройство будет: Archos 3.2 с Android 2.2 и режимом USB-хоста.

2 - включите пакет RxTx lib в мое приложение для Android. и включить собственный код RxTx с помощью Android NDK.

3- короткий кабель, который USB -> последовательный.

Не могли бы вы объяснить мне, где я могу столкнуться с проблемами?

Ответы на вопрос(8)

это поучительно может указать вам в правильном направлении

вам нужно будет придумать драйверы для любого устройства USB <-> Serial, которое у вас есть. Многие из этих устройств используют чип Prolific PL2303:

http://www.qbik.ch/usb/devices/showdr.php?id=175

который стандартное ядро ​​Linux имеет поддержку, и имел в течение длительного времени. Я использовал это, и он отлично работает, поэтому я рекомендую вам использовать USB <-> последовательные устройства, которые используют этот чип.

Кроме того, с помощью udev эти устройства обычно отображаются как / dev / ttyUSB #. Как это происходит с Android, я не знаю, так что вам нужно это выяснить.

Наконец, вам нужно будет собрать собственный код RxTx. Этот код довольно грубый - у меня были проблемы с его сборкой на довольно современном Angstrom, и я вообще не пытался кросс-компилировать.

большинство стандартных ядер для устройств Android поставляются с минимумом скомпилированных модулей. Вам нужно перекомпилировать ядро ​​с включенными драйверами для USB в последовательные преобразователи. Ваша удача зависит от конкретного устройства, которое вы используете. Многие производители нарушают GPL, не предоставляя исходный код ядра. Некоторые производители, такие как Motorola с Droid 2, требуют подписанного ядра. Что делает невозможным загрузку собственного ядра на устройстве.

Кроме того, хотя многие устройства имеют режим USB-хоста, вы должны перепрыгнуть через обручи, чтобы переключить режим устройства. Например, Motrola droid требует подключения специального USB-ключа к USB-порту перед включением питания для переключения в режим хоста.

Вот несколько ссылок, объясняющих, что вам нужно сделать:

«Подробнее о режиме хоста Droid»http://www.tombom.co.uk/blog/?p=134.

«Режим USB Host на Motorola Droid»http://www.tombom.co.uk/blog/?p=124.

 Vlad03 мар. 2011 г., 05:04
как и Droid, оригинальный. С Droid2 вам не повезло. Если вы не получите Motorolla дать вам ключи. :-(
 rami08 янв. 2011 г., 19:51
спасибо, я видел эти вещи Droid, но по крайней мере Archos и Acer предоставляют исходный код ядра

это определенно беспорядок в использовании последовательных устройств со стороны телефона на Android. Проблема заключается в том, что различные устройства, представленные в AOS, не документированы и редко совпадают со стандартными устройствами Linux. Таким образом, вы никогда не знаете, с кем / с кем вы на самом деле разговариваете, какое-либо устройство, уровень абстракции (HAL, UART, PCI и т. Д.). Вот учебник о том, как разговаривать с последовательным устройством (модемом) с ПК с внешним USB-подключением.

В любом случае, если ваш телефон поддерживает режим USB-хоста, необходимо использовать другой способ подключения к последовательному порту / устройствам. В конце концов, обратная совместимость часто обеспечивает некоторую поддержку факса, телефонии или внешнего модема через USB-кабель. Также есть tehtering, который также может содержать некоторое виртуальное последовательное устройство ...

Для некоторых из них есть учебникВот.

PS. Основная проблема таких программ (например, Влада) и приложений (например, serial-api) состоит в том, что они делают слишком строгие предположения об именах устройств / портов и разрешениях, необходимых для достижения (чтения / записи) этих ...

Вам нужен либо драйвер устройства для USB Serial Driver, который, вероятно, не включен в ядро ​​Android.

Другой вариант - использовать что-то вроде libusb (который также может быть перенесен на android) и драйвер пространства пользователя, основанный на libusb.

 plaisthos08 янв. 2011 г., 01:33
сравните это с обычным ПК. Порты USB находятся в режиме хоста. Для подключения USB <-> последовательного адаптера под Windows требуются драйверы. Под Linux драйвер является частью ядра. BUt Android использует урезанное ядро, в котором удаляются ненужные драйверы. Я считаю, что драйверы USB <-> также удалены.
 Chris Stratton03 мар. 2011 г., 05:53
Скорее всего «удалено» только в том смысле, что не выбрано для компиляции. Исходный код, вероятно, все еще там, и вполне вероятно, что он будет прекрасно работать, если включен в конфигурации.
 rami08 янв. 2011 г., 01:13
Хорошо, но поскольку на устройстве включен режим хоста, ядро ​​должно быть оснащено драйверами для этой работы, верно? если мы подумаем об этом как о нормальном linux-боксе, столкнусь ли я с проблемой, если просто подключу USB-последовательный адаптер?
Решение Вопроса

лкаhttp://v-lad.org/projects/gnu.io.android/

Вам все еще может понадобиться пересобрать ядро ​​и, возможно, перекомпилировать разделяемую библиотеку для вашей среды. Но это должно помочь вам начать.

чтобы получить доступ на чтение / запись к последовательным портам.

После этого взгляните наAPI последовательного порта Android, Вы можете скачать исходный код и посмотреть, как он реализован.

Он имеет встроенную библиотеку, которая получает дескриптор файла на последовательные порты, а затем вы можете читать и записывать в порты. Обычно приложение может не отображать список всех доступных портов на планшете. Чтобы увидеть, где подключено ваше устройство, подключите его к USB с HostMode и в эмуляторе типа «dmesg | tail». Он должен предоставить вам подробную информацию об устройстве и о порте, к которому он подключен.

Я также использовал Archos Tablet, мое устройство было подключено к «/ dev / ttyACM0».

Удачи!

Создайте свой собственный модуль для определенного USB-буфера, который вы собираетесь использовать:Сборка модуля ядра для Android

Я рекомендую использовать перенесенную библиотеку usb-serial-for-android, в которой уже реализован драйвер PL2303:https://code.google.com/r/felixhaedicke-usb-serial-for-android

Ваш ответ на вопрос