Спасибо, хоть прямой ответ вы и не дали, но приложение, которое вы прикрепили помогло разобраться.
Вот решение:
На Android-устройствах доступ к последовательным портам обычно осуществляется через устройства /dev/tty*
После экспериментов мне удалось получить данные с порта /dev/ttyS7
, который, как оказалось, является интерфейсом RS-485 на панели YC-SM08P.
Дополнение:
Сам по себе порт /dev/ttyS7
не передает данные. Для того, чтобы начать получать их нужно его дополнительно настроить. Лично я настройку проводил в терминале (через ADB ссылка). Вот с такими параметрами данные начинают идти:
stty -F /dev/ttyS7 115200 cs8 -cstopb -parenb -crtscts -icrnl -opost -isig -icanon -iexten -echo
параметры 115200
, cs8
, -cstopb
и -parenb
зависят от настроек вашего устройства, с которого вы получаете данные.
Параметры и их значения
-F /dev/ttyS7
: Указывает файл устройства, к которому будут применены настройки (/dev/ttyS7
в вашем случае).115200
: Скорость передачи данных (baud rate). Возможные значения:
- Стандартные значения скорости:
300
,1200
,2400
,4800
,9600
,19200
,38400
,57600
,115200
и другие, в зависимости от поддерживаемых значений на устройстве. - Определяет скорость передачи данных в битах в секунду.
cs8
: Размер символа (character size), указывающий, сколько бит данных содержится в одном символе. Возможные значения:
cs5
,cs6
,cs7
,cs8
— количество бит: от 5 до 8. В большинстве случаев используетсяcs8
(8 бит на символ).
-cstopb
: Устанавливает количество стоп-битов. Возможные значения:
cstopb
— 2 стоп-бита.-cstopb
— 1 стоп-бит (обычно используется в асинхронных соединениях).
-parenb
: Управляет битом чётности (parity bit), который используется для проверки ошибок. Возможные значения:
parenb
— включает бит чётности.-parenb
— отключает бит чётности (обычно используется, когда контроль чётности не требуется).
-crtscts
: Управляет аппаратным контролем потока RTS/CTS (Request to Send / Clear to Send). Возможные значения:
crtscts
— включает аппаратный контроль потока.-crtscts
— отключает аппаратный контроль потока (обычно используется, когда устройство не требует RTS/CTS).
-icrnl
: Входной перевод строк (input carriage return to newline). Возможные значения:
icrnl
— преобразует символыCR
(carriage return) вNL
(newline).-icrnl
— отключает преобразование, отправляяCR
символы как есть (полезно для работы с устройствами, которые не используютNL
).
-opost
: Управляет постобработкой выходных данных (output post-processing). Возможные значения:
opost
— включает постобработку.-opost
— отключает постобработку, отправляя данные в исходном виде.
-isig
: Управляет сигналами управления (например,Ctrl+C
,Ctrl+Z
). Возможные значения:
isig
— позволяет терминалу реагировать на сигналы, такие как прерывания (Ctrl+C
).-isig
— отключает сигналы, что полезно для последовательного ввода/вывода.
-icanon
: Управляет каноническим (строковым) режимом. Возможные значения:
icanon
— включает канонический режим, где ввод обрабатывается построчно.-icanon
— отключает канонический режим, переходя в «сырое» состояние, где данные сразу передаются приложению.
-iexten
: Управляет дополнительными управляющими функциями. Возможные значения:
iexten
— включает расширенные функции (например,Ctrl+V
для дословного ввода символов).-iexten
— отключает дополнительные функции, оставляя только базовую передачу данных.
-echo
: Эхо данных на терминале. Возможные значения:
echo
— включает эхо, когда вводимые символы отображаются обратно на экране.-echo
— отключает эхо, чтобы данные передавались без отображения на терминале (важно для последовательного ввода/вывода).
Не могу сказать точно нужны эти параметры все или только некоторые. Такую настройку порта проводит приложение от разработчика (uart.rar в предыдущем ответе), после чего данные начинают поступать. Я просто скопировал данную настройку.