0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 3
1

Qt, Android and Serial Port

18.09.2013, 02:57. Показов 9952. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день или вечер, а может и ночь.
Пытаюсь научить дружить планшет с программой на Qt и последовательным портом. Кто-нибудь пробовал это уже сделать? Поделитесь добрым советом.
К сожалению, или счастью, Qt5SerialPort не портирован на андроид. Поэтому копаю в другую сторону (не Qt). Вычитал, что есть еще Google Api, но пока до нее руки не дошли. Если кто знает про эту api, отпишитесь, пожалуйста.
Как вариант, можно С++ и Java вместе использовать. Но не костылем ли будет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2013, 02:57
Ответы с готовыми решениями:

Serial Port на Android
Приветствую всех. Написал тестовое приложение, показывающее, сколько COM портов есть в системе и их...

Сборка Qt Serial Port под Android из source
Добрый день помогите пожалуйтса собарть комплект Serial port под android, скачал сорцы, выставил...

QT serial port
Здравствуйте! пытаюсь заставить работать ком порт в QT для начала решил попробовать простой...

Qt serial port кассовый аппарат
Хочу реализовать обмен с кассовым аппаратом, протокол есть в открытом доступе. Так же есть...

29
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
18.09.2013, 03:22 2
В андроидной железке обычно UART сугубо для служебных целей. У вендоров там обычно закрытый интерфейс (к нему могут быть присобачены другие модули, например bluetooth, wifi, fm, etc. Так что лезть туда просто так нельзя)
Собсно откуда уверенность, что UART както доступен? (хотябы и для рутованого девайса)
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
18.09.2013, 07:43 3

Цитата Сообщение от InVacation Посмотреть сообщение
К сожалению, или счастью, Qt5SerialPort не портирован на андроид.
Портирование Qt под Android еще не закончено.
Цитата Сообщение от InVacation Посмотреть сообщение
Вычитал, что есть еще Google Api, но пока до нее руки не дошли. Если кто знает про эту api, отпишитесь, пожалуйста.
Гугл сразу дал ответ. В этом api поддержки serial port нет, поэтому есть проект android-serialport-api.
Цитата Сообщение от InVacation Посмотреть сообщение
Как вариант, можно С++ и Java вместе использовать. Но не костылем ли будет?
Для чего именно?
Что бы работать с последоваетльным портом на C++ никакого api ненужно.
0
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 3
18.09.2013, 10:09  [ТС] 4
Цитата Сообщение от alex_x_x Посмотреть сообщение
Собсно откуда уверенность, что UART както доступен? (хотябы и для рутованого девайса)
Со слов на форумах, статьях и т.п. Псевдоуверенность.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Гугл сразу дал ответ. В этом api поддержки serial port нет, поэтому есть проект android-serialport-api.

Для чего именно?
Про этот api узнал из статьи на хабре - http://habrahabr.ru/post/163913/ . Но как раз и возник вопрос про два языка. Обычно ведь для андройда используется JAVA, и api, скорее всего, заточено под нее.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Что бы работать с последоваетльным портом на C++ никакого api ненужно.
С последовательным портом на пк проблем никаких нет. А т.к. планшет, то возникли вопросы. Получится ли работать как с обычным линуксом?
У меня в голове, пока что, вся загвоздка заключается в С++ и Android'e.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
18.09.2013, 10:44 5
Цитата Сообщение от InVacation Посмотреть сообщение
Получится ли работать как с обычным линуксом?
А у андройда необычный линукс? Android-serialport-api это обертка над C/C++ кодом.
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
18.09.2013, 17:25 6
Цитата Сообщение от InVacation Посмотреть сообщение
Со слов на форумах, статьях и т.п. Псевдоуверенность.
я год разрабатывал под андроидную железку, в чем ваша уверенность?

Добавлено через 2 часа 3 минуты
главный вопрос, а для чего?
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
18.09.2013, 21:19 7
Всем доброго времени.

Как разработчик QtSerialPort скажу, что мы уже начали портирование для Android.

Здесь https://bugreports.qt-project.... TBUG-32672 общий таск с под-тасками где описано что было сделано и что планируется.

Вкратце, уже QtSerialPort можно без ошибок компилировать. Но нам нужно ваше, парни, участие в тестировании и т.п. (хотя-бы какой-то активности и реакции).

Что планируется в ближайшее время:

1. Доделать класс QSerialPortInfo для того чтобы он корректно возвращал все доступные порты.
2. Проверить класс QSerialPort при работе с последовательными устройствами (в принципе, вы сами это уже можете сделать ).

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

Для проверки нужно скачать текущую stable ветку через Git, подробности тут:
http://qt-project.org/wiki/QtSerialPort_Russian
1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
18.09.2013, 21:23 8
kuzulis, а какая цель? Я не очень понимаю применения.
Разве, что для девелоперских плат (?)

Или serialport это некая абстракция?
BTW: I can on the Android smartphone through Terminal Emulator application (app for rooted android) could get access to /dev/ttyGPS0 (for example), through "$cat/dev/ttyGPS0". But for this purpose necessary the SU rights, otherwise "permission denied" message occur.
ок, понял
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
18.09.2013, 21:42 9
Ну, в теории, при помощи QtSerialPort можно писать любые приложения, которые используют последовательные порты/модемы на любимом C++ и Qt.

Например, написать свое приложение которое использует GPS, приложение с доступом к модему для отправки SMS и прочего, и наконец, в ты в любое время можешь к планшету подрубить USB/Serial переходник и задействовать /dev/ttyUSB для общения с какой-нить железкой (той же Ардуино и пр.).

Но нужно все это проверить сначала.

Добавлено через 5 минут
UPD: По крайней мере я проверял GPRS модем, и он отвечал на AT команды.. Думаю вполне возможно что-то наваять.
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
18.09.2013, 22:09 10
kuzulis, дада, чето меня на физическом сериал порту замкнуло
спасибо
0
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 3
19.09.2013, 09:56  [ТС] 11
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
А у андройда необычный линукс? Android-serialport-api это обертка над C/C++ кодом.
Это и пытался выяснить. С андройдами только-только начал разбираться. Поэтому топик и создал, параллельно читая статьи - по-моему, наиболее быстрый способ получить информацию


Цитата Сообщение от alex_x_x Посмотреть сообщение
я год разрабатывал под андроидную железку, в чем ваша уверенность?

Добавлено через 2 часа 3 минуты
главный вопрос, а для чего?
Как раз уверенность и пытаюсь обрести. Меня вот заклинило в самом первом посту, под последовательным портом имел ввиду порты с последовательным интерфейсом передачи - USB, COM (через переходник USB-COM). Это первый момент. Второй момент - существую уже приложения с передачей данных по RS232/485 через переходник.
Зачем: Передача данных с железкой. С обычным пк проблем нет, уже вроде писал. А тут захотелось с планшетом это сделать.


п.с. На самом деле, может быть вопросы и глупые, но сейчас только начал разбираться с этим.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
19.09.2013, 10:14 12
Цитата Сообщение от InVacation Посмотреть сообщение
Это и пытался выяснить.
Linux это ядро, как оно может быть не таким? Единственное, что производители планшета могли собрать ядро без поддержки usb-com.
0
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 8
10.01.2014, 10:27 13
Цитата Сообщение от kuzulis Посмотреть сообщение
Всем доброго времени.
Как разработчик QtSerialPort скажу, что мы уже начали портирование для Android.
Привет, kuzulis! Спасибо за работу над QtSerialPort! Использую в своем проекте для управления устройством - все отлично работает под PC и Mac, но вот Андроид очень не хвает. Есть там новости по поддержке?
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
10.01.2014, 15:11 14
Доброго времени.

Скачай Git репозиторий, собери, проверь и отпишись что делал, что работает, а что нет.

На баг-трекере здесь отписались о том, что вроде как QSerialPort работает в Android.. Но непонятно, нужны ли права рута или нет.. Но QSerialPortInfo не находит FTDI девайсы. Скорее всего зависит от конкретного целевого у-ва...

В общем, нам нужна помощь в тестировании и пр..
0
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 8
20.01.2014, 12:21 15
Цитата Сообщение от kuzulis Посмотреть сообщение
Доброго времени.
Скачай Git репозиторий, собери, проверь и отпишись что делал, что работает, а что нет.
Вот с этим у меня могут быть проблемы... Честно говоря никогда этого не делал. Можешь подробнее рассказать, плиз?
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
20.01.2014, 15:30 16
1. Качаешь исходники: https://qt.gitorious.org/qt/qtserialport/ (там download кнопочка есть)
2. Запускаешь QtCreator
3. Открываешь файл проекта: qtserialport.pro
4. Выбираешь в диалоговом окне QtCreator твой Android кит который будешь использовать для компиляции и пр.
5. Ждешь пока проект дооткроется и пропарсится.
6. Идешь в свойство проекта, меню "Проекты" (или как там оно в русском QtCreator), и добавляешь новую Make цель. В ней прописываешь аргумент "install".
7. Жмешь на кнопочку "Пе-ресобрать проект" (или как там оно в русском QtCreator).
8. Проверяешь, что QtSerialPort установился: в твоей установленной Qt-For-Android должны появиться:
* /include/QtSerialPort - директория с хедерами
* /lib, /bin - библиотеки типа qtserialportxxx.so
9. Закрываешь проект QtSerialPort
10. Создаешь какой нить новый тестовый проект, например пустой и прописываешь в его *.pro файле: QT += serialport и пробуешь собрать проект. Если никаких ошибок нет - значит QtSerialPort успешно найден и слинкован.
11. Далее, делай что хочешь.
0
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 8
20.01.2014, 15:51 17
Цитата Сообщение от kuzulis Посмотреть сообщение
1. Качаешь исходники: https://qt.gitorious.org/qt/qtserialport/ (там download кнопочка есть)
2. Запускаешь QtCreator
3. Открываешь файл проекта: qtserialport.pro
4. Выбираешь в диалоговом окне QtCreator твой Android кит который будешь использовать для компиляции и пр.
5. Ждешь пока проект дооткроется и пропарсится.
6. Идешь в свойство проекта, меню "Проекты" (или как там оно в русском QtCreator), и добавляешь новую Make цель. В ней прописываешь аргумент "install".
7. Жмешь на кнопочку "Пе-ресобрать проект" (или как там оно в русском QtCreator).
8. Проверяешь, что QtSerialPort установился: в твоей установленной Qt-For-Android должны появиться:
* /include/QtSerialPort - директория с хедерами
* /lib, /bin - библиотеки типа qtserialportxxx.so
9. Закрываешь проект QtSerialPort
10. Создаешь какой нить новый тестовый проект, например пустой и прописываешь в его *.pro файле: QT += serialport и пробуешь собрать проект. Если никаких ошибок нет - значит QtSerialPort успешно найден и слинкован.
11. Далее, делай что хочешь.
На 7-м шаге, когда пересобираю проект, ругается:
/Users/anton/Documents/Temp/qt-qtserialport/src/serialport/qserialport.h:48: ошибка: QtSerialPort/qserialportglobal.h: No such file or directory
#include <QtSerialPort/qserialportglobal.h>
^
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
20.01.2014, 16:04 18
Значит что-то не так делаешь. Перечитай все снова и особенно п. 3.
0
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 8
20.01.2014, 17:14 19
Цитата Сообщение от kuzulis Посмотреть сообщение
Значит что-то не так делаешь. Перечитай все снова и особенно п. 3.
Да вроде бы в п.3 сложно накосячить )) Делаю все по пунктам, но почему-то все равно не находит <QtSerialPort/qserialportglobal.h>
0
41 / 39 / 7
Регистрация: 21.05.2012
Сообщений: 198
20.01.2014, 21:57 20
Я только что проверил: собрал в Qt 5.2, Android x86.

Скорее всего у тебя имеется уже установленный QtSerialPort (возможно какая-то очень древняя версия). Посмотри в директориях /include, /lib, /bin, /mkspecs наличие соответствующих файлов и удали их. А затем заново пересобери QtSerialPort.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2014, 21:57
Помогаю со студенческими работами здесь

Qt Serial Port отправляет только 3 байта
на компе два порта подсоединены к друг другу . на один ком-порт привязываю свою программу, на...

Работа Scilab Serial Port Library (COM port)
Как работает Scilab Serial Port Library ? (может кто то встречал описание подробное, поделитесь...

serial port
Здравствуйте. Использую стандартные классы .net для работы с ком портом. Работу с портом...

Работа с Serial port
Всем доброго времени суток! Я начинающий программист-самоучка (С/С++, Pascal). Уже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru