279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
Serial Port на Android01.10.2018, 20:57. Показов 6923. Ответов 16
Метки нет Все метки)
(
Приветствую всех. Написал тестовое приложение, показывающее, сколько COM портов есть в системе и их номера (использовал QSerialPortInfo). На Windows все работает отлично.
Далее скомпилировал и установил это приложение на смартфон Xiaomi Redmi Note 5A, Android 7.1. Подключил к смартфону преобразователь USB-RS232 и убедился с помощью приложения USB Serial Control Panel, что в системе появился последовательный порт. Однако моя тестовая программа этот порт не находит. Говорит, что в системе нет портов. Как в Qt работать с последовательными портами в Android? Может у меня в SDK не установлен API нужного уровня?
0
|
01.10.2018, 20:57 | |
Ответы с готовыми решениями:
16
Qt, Android and Serial Port Сборка Qt Serial Port под Android из source QT serial port |
42 / 40 / 7
Регистрация: 21.05.2012
Сообщений: 199
|
|
01.10.2018, 23:13 | |
Андройд не имеет АПИ для работы с последовательными портами. Единственный вариант - это работать с ними через POSIX, открывая у-ва типа /dev/ttyUSBxx... Но главная проблема в том, что для этого нужно чтобы Андройд-девайс был хакнут (рутован). Тогда можно открыть последовательные порты или с правами суперпользователя, или, возможно, написав какой-нить скрипт который при загрузке системы (или при втыкании УСБ-сериал железяки) автоматом менял ему права доступа через chmod. Как это в действительности делается и получится или нет - я не знаю, сам не пробовал.
> Однако моя тестовая программа этот порт не находит. Посмотри через эмулятор терминала, создается ли у-во в /dev/ttyACMxx, /dev/ttyUSBxx при втыкании УСБ-сериал железки. Если нет - то ничего как бы просто так не сделаешь... Если создается, но QSerialPortInfo не видит, то попробуй обновить куте (ты кстати не указал какая у тебя версия). Если все-равно не видит - то отлаживай сам и смотри почему. ЗЫ: В итоге, это все тухлая затея, т.к. QtSerialPort будет удален из поставки куте для Андройда то-ли с 5.12 то ли уже его удалили. В общем случае нужно качать сорцы этого модуля и компилять самостоятельно (при условии что есть возможность зарутовать Андрод девайс).. В иных случаях работать ничего не будет - скажи спасибо Гуглу. Обычно работу с УСБ-сериал портами без рутовых прав делают через УСБ-отг, путем чтения даташита на конкретный УСБ-сериал и посылки/приема в УСБ данных напрямую в енд-пойнты. Добавлено через 13 минут UPD: Хотя, нашел кое что https://developer.android.com/things/sdk/pio/uart но не понял, давно ли оно там ил для всех Андройдов ли? Добавлено через 11 минут Кажется недавно добавились эти фичи: https://developer.android.com/... s/releases в 2018 году... Написано что поддерживаются: SiLabs CP210x FTDI UART Prolific PL2303
1
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
02.10.2018, 19:22 [ТС] | |
kuzulis, спасибо за ответ. У меня переходник USB-RS232 как раз основан на чипе FTDI. У меня установлена версия Qt 5.10. Попробую в ближайшее время установить Qt последней версии и там проверить тестовую программу на предмет обнаружения порта.
0
|
42 / 40 / 7
Регистрация: 21.05.2012
Сообщений: 199
|
|
02.10.2018, 22:23 | |
> толк есть даже без рутовых прав
Это если через USB напрямую данные слать, но я хз как это делается в Андройде (я просто слышал звон что так тоже можно). > Подскажите, как из Qt сделать Никак, JAVA в помощь. (хотя, некоторые вроде LibUSB заводят на Андройде)
0
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
04.10.2018, 21:11 [ТС] | |
Ну вот... Давно хочу свою программу для работы с устройством через RS-232 перенести на смартфон. Подумал, что раз Qt кроссплатформенная библиотека, то реализую программу на ее основе сначала для Windows, а затем легко и непринужденно перенесу на Android. А тут такая засада...
0
|
42 / 40 / 7
Регистрация: 21.05.2012
Сообщений: 199
|
|
05.10.2018, 14:23 | |
Вот тут пример как через USB работать: https://github.com/olena-anufr... or-android
1
|
42 / 40 / 7
Регистрация: 21.05.2012
Сообщений: 199
|
|
06.10.2018, 22:54 | |
Не знаю, я не JAVA экшперт. Но оттуда ты можешь взять JAVA код для твоего типа девайса, и обернуть его через Qt-шный androidextras модуль (там куча классов-оберток для андройдовской хрени), и потом дергать твой код (тот JAVA код) из С++.
0
|
![]() ![]() |
||
08.10.2018, 14:16 | ||
POSIX это что тебе не API ? QtSerialPort как раз под виндой внутри под капотом использует WinAPI под линукс POSIX. Как в андроиде не знаю - нет не андроида ни опыта работы с ним, но скорее всего тоже POSIX так как андроид основан на линуксе. d7d1cd, Из чего следует что теоретически должно работать. Поэтому нужно разбираться и не слушать всяких. Первое что я бы проверял - права tty, второе - попробовал сделать обнаружение через нативное апи как в линуксе.
0
|
42 / 40 / 7
Регистрация: 21.05.2012
Сообщений: 199
|
|
08.10.2018, 20:06 | |
> Нужно меньше пить наверное, что бы не противоречить самому себе.
Не глупи (не тупи). На не-рутованом андройде у тебя нет возможности открыть tty. т.к у тебя нет прав доступа. Изменить права ты не можешь так просто. Поэтому это не годится для любых/обычных девайсов... Это годится только в случае если ты сам кастомизируешь сборку Андройда для конкретного девайса и сам продаешь/выпускаешь этот девайс (тогда ты сможешь что-нить подшаманить с доступом или написать там всякие скриптики). Вариант через USB - это не "правильный" доступ... т.к. эта тупо работа с сериал портом через Ж..пу... тебе надо знать спеку на конкретный чип USB/serial чтобы гнать туда в ендпойнты нужные данные (это что-то вроде эмуляции драйвера). Таким макаром можно с любым девайсом через USB работать (не только с сериал портами), зная их USB протокол.
0
|
![]() ![]() |
||
08.10.2018, 21:10 | ||
Я говорил о правах? Я говорил про Api.
USB тут вообще никаким боком спрашивали конкретно про COM порт. В общем ТС стоило погуглить Qt, Android and Serial Port
0
|
09.10.2018, 11:29 | ||||
0
|
![]() ![]() |
|||||||
09.10.2018, 11:48 | |||||||
Я имел ввиду
И вперед ....
0
|
09.10.2018, 11:57 | |
0
|
![]() ![]() |
|
09.10.2018, 13:12 | |
0
|
09.10.2018, 13:12 | |
Помогаю со студенческими работами здесь
17
Qt serial port кассовый аппарат Qt Serial Port отправляет только 3 байта Работа Scilab Serial Port Library (COM port) serial port Arduino serial port VS Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Исключения в Java: советы, примеры кода и многое другое
Javaican 18.05.2025
Исключения — это объекты, созданные когда программа сталкивается с непредвиденной ситуацией: файл не найден, сетевое соединение разорвано, деление на ноль. . . Список можно продолжать до бесконечности. . . .
|
Как сделать SSO (Single Sign-On) в C# приложении
stackOverflow 18.05.2025
SSO — это механизм, позволяющий пользователю пройти аутентификацию один раз и получить доступ к нескольким приложениям без повторного ввода учетных данных. Вы наверняка сталкивались с ним, когда. . .
|
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
|
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
|
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
|
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
|
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
|
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
|
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
|
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
|