Перейти к содержанию
Fire Monkey от А до Я
  • 0

Serial port


Vanka

Вопрос

Добрый день!

Необходимо реализовать под Android прием и передачу данных с последовательного порта. Самостоятельно смог найти лишь платный сторонний компонент http://www.winsoft.sk/acomport.htm.

Есть ли возможность решить задачу без компонентов?
Или может есть свободные компоненты с открытым кодом?

Изменено пользователем Vanka
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Мне нужен доступ к порту под Android.

А можно уточнить, а что под Android есть последовательный порт или все же работа будет через USB или ...?

Изменено пользователем GASCHE
Ссылка на комментарий
  • 0

Вот хороший вопрос. Т.е. аппаратно будет использоваться конечно переходник COM <> USB и подключаться к Андроид устройству по кабелю OTG, но программно должен быть именно доступ к последовательному порту.

Вот есть тема http://fire-monkey.ru/topic/246-kak-rabotat-s-vneshnimi-ustroistvami-cherez-usb/ про подключение usb, и вроде какие-то данные принимаются, но никакого упоминания про настройки порта (скорость передачи и пр.) в примере нет.

Ссылка на комментарий
  • 0

поиском никто не пользуется

Возможно там проблема в том что в исходниках TComPort используется Windows, а значит нужно вносить изменения в код.

 

Vanka, проект для плей маркета?

Изменено пользователем Rusland
Ссылка на комментарий
  • 0

Возможно там проблема в том что в исходниках TComPort используется Windows, а значит нужно вносить изменения в код.

 

Vanka, проект для плей маркета?

 

 там в ComPort.pas все полностью на winAPI, изменениями не отделаться, под андроид не годится. GASHE прав, надо подключать java, давно хотел попробовать, времени все нет, вот тут пишут как http://delphifmandroid.blogspot.ru/2014/07/java_11.html

Изменено пользователем Камышев Александр
Ссылка на комментарий
  • 0

GASHE прав, надо подключать java, давно хотел попробовать, времени все нет, вот тут пишут как http://delphifmandroid.blogspot.ru/2014/07/java_11.html

Да, не плохо бы научится (видимо проще создавать обертки через Java2OP). Под java больше реализовано.

https://github.com/mik3y/usb-serial-for-android

Изменено пользователем Rusland
Ссылка на комментарий
  • 0

Разбираюсь с созданием оберток.

 

Пытаюсь создать обертку для пакета com.hoho.android.usbserial.driver (https://github.com/mik3y/usb-serial-for-android).

Действую по статье (http://delphifmandroid.blogspot.ru/2014/07/java_11.html), подготовил build.bat (скачать можно здесь https://yadi.sk/d/DuEzRNHAmjRkT). Использую RAD Studio XE10.

 

Пока застрял на преобразовании jar в dex. При исполнении файла build.bat получаю вот такую ошибку:

processing archive D:\projects\Android\RADStudio_SerialPort\java\output\jar\test_classes.jar...
ignored resource META-INF/MANIFEST.MF
processing UsbSerialPort.class...


UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
        at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
        at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
        at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
        at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
        at com.android.dx.command.dexer.Main.processClass(Main.java:704)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
        at com.android.dx.command.dexer.Main.access$300(Main.java:83)
        at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
        at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:632)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
        at com.android.dx.command.dexer.Main.run(Main.java:246)
        at com.android.dx.command.dexer.Main.main(Main.java:215)
        at com.android.dx.command.Main.main(Main.java:106)
...while parsing UsbSerialPort.class


1 error; aborting

Предлагаю общими усилиями разобраться в этом вопросе.

Изменено пользователем Brovin Yaroslav
Ссылка на комментарий
  • 0

От того же автора есть статья http://delphifmandroid.blogspot.ru/2015/03/jar.html#more где вроде все проще.

 

Но после подключения jar файла к проекту появляется ошибка:

[Exec Error] The command "PATH C:\Program Files\Java\jdk1.8.0_66\bin;C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBaseXE7\IDE_spoof;C:\Program Files (x86)\Embarcadero\Studio\17.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl;C:\Program Files (x86)\Embarcadero\Studio\17.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\Win64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\Microsoft.NET\Framework\v1.1.4322\;C:\Program Files (x86)\Borland\BDS\4.0\Bin;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin;C:\Users\Public\Documents\RAD Studio\7.0\Bpl;C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\RAD Studio\5.0\Bpl;C:\Program Files (x86)\CollabNet\Subversion Client;C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseHg\;C:\Program Files (x86)\Borland\CaliberRM SDK 2005 R2\lib;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Java\jdk1.8.0_66\bin;C:\Users\vanka\Documents\Borland Studio Projects\Bpl & "C:\Users\Public\Documents\Embarcadero\Studio\17.0\PlatformSDKs\android-sdk-windows\build-tools\22.0.1\dx.bat" --dex --output="D:\projects\Android\USB2\Android\Debug\usbserial-dexed.jar" "D:\projects\Android\USB2\usbserial.jar"" exited with code 1.
Ссылка на комментарий
  • 0

С батником разобрался.

 

Случайно наткнулся на комментарий:

 

When the small Java source files get compiled, the Android dx tool expects them to be compiled by the JDK 1.6.x compiler as opposed to the JDK 1.7.x compiler. If you have JDK 1.7.x installed, you hit a problem with dx reporting: bad class file magic (cafebabe) or version (0033.0000)
However, to avoid forcing a reinstall of JDK 1.6 you might like to modify build.bat batch files and add in extra command line switches to the javac.exe command-lines. You need to insert this after the javac.exe command to force Java 1.6 byte code output, which is digestible by the Android dx command: -source 1.6 -target 1.6
 

 

 

Добавив эти ключи я получил classes.dex.
 

Теперь вопрос: в интерфейсе обертки надо прописывать все поля и методы класса или только необходимые?

Изменено пользователем Brovin Yaroslav
Ссылка на комментарий
  • 0

Еще у меня не работает Java2OP.exe

При передаче ему jar вообще ничего не выдает, а если передать папку с исходниками выдает пустую обертку:

 

{*******************************************************}
{                                                       }
{           CodeGear Delphi Runtime Library             }
{ Copyright(c) 2014 Embarcadero Technologies, Inc.      }
{                                                       }
{*******************************************************}


unit Androidapi.JNI.Interfaces;


interface


uses
  Androidapi.JNIBridge;


type
// ===== Forward declarations =====




// ===== Interface declarations =====


implementation


procedure RegisterTypes;
begin
end;


initialization
  RegisterTypes;
end.

 

Java2OP скачивал в архиве, с embarcadero не удалось скачать, хотя у меня лицензионная версия (правда академическая).

Изменено пользователем Vanka
Ссылка на комментарий
  • 0
  • Модераторы

Vanka, .jar файлы открываются на компе?

скорей всего java требует обнову, такая же песня была.

 

все компилилось, а .jar файлы (виндовые програмки) не запускались

Ссылка на комментарий
  • 0
  • Модераторы

Нет, не просмотр, а запуск приложений с расширением .jar. Не знали?

Java последние версию ставил, восьмую если не ошибаюсь.

Только после этого нужно заменить пути к джава в опциях Delphi. Иначе собирать не сможете

Ссылка на комментарий
  • 0
  • Модераторы

 

Нет, не просмотр, а запуск приложений с расширением .jar. Не знали?

 

Так у меня же в jar не приложение, а пакет. Его не запустишь.

 

это я говорил для проверки работоспособности java.

jata2op скорей все поэтому не работает, нужно обновить java

Ссылка на комментарий
  • 0
Да нет, с java все в порядке. Стоит jdk1.8.0_66. Под NetBeans все работает.
 
Мне подсказали, что java2op теперь поставляется вместе с RadStudio.
Запустил новый файл java2op получил другие ошибки:
 
Warning: error opening ReservedWordsOP.txt
Warning: error opening ReservedWordsC.txt
Parsing xml: c:\Program Files (x86)\Embarcadero\Studio\17.0\bin\converters\java2op\bootclasses.xml
Parsing jar: usbserial.jar
 
Не подскажете, что за файлы ReservedWordsOP.txt и  ReservedWordsC.txt?
Ссылка на комментарий
  • 0
 

Не подскажете, что за файлы ReservedWordsOP.txt и  ReservedWordsC.txt

 

Если я правильно понял то ответ тут.

 

Еще у меня не работает Java2OP.exe

 

Вы бы батник нарисовали, может у кого и есть эти файлы.

Изменено пользователем GASCHE
Ссылка на комментарий
  • 0

 

Если я правильно понял то ответ тут.
 

Вы бы батник нарисовали, может у кого и есть эти файлы.

Видимо неправильно. В архиве по ссылке лежат файлы 

  • bin\converters\java2op\bootclasses.jar
  • bin\converters\java2op\bootclasses.xml

А они-то у меня есть. А вот что за файлы  ReservedWordsOP.txt и  ReservedWordsC.txt понять не могу.

 

 

А про какой батник идет речь?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...