16 348
правок
м (→Serial_tool) |
|||
(не показано 8 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}} | {{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}} | ||
== | == Serial-порты в контроллере Wiren Board == | ||
=== Реализация | === Реализация === | ||
Полное описание читайте в [http://www.tldp.org/HOWTO/Serial-HOWTO.html документации], вот выжимка из неё: | Полное описание читайте в [http://www.tldp.org/HOWTO/Serial-HOWTO.html документации], вот выжимка из неё: | ||
* В serial-порт можно посылать данные и получать данные из него. | * В serial-порт можно посылать данные и получать данные из него. | ||
Строка 7: | Строка 7: | ||
Перед началом работы с serial-портом, настройте его скорость и параметры так же как настроено подключённое к нему устройство: | Перед началом работы с serial-портом, настройте его скорость и параметры так же как настроено подключённое к нему устройство: | ||
* Скорость в битах в секунду, самое популярное — | * Скорость в битах в секунду, самое популярное — 9600 бит/с. | ||
* Количество бит в символе, чётность и количество стоп-битов. Популярна конфигурация 8N1 — восемь бит в символе, без проверки чётности, один стоп-бит. | * Количество бит в символе, чётность и количество стоп-битов. Популярна конфигурация 8N1 — восемь бит в символе, без проверки чётности, один стоп-бит. | ||
* Аппаратный и программный контроль потока — если не уверены, то поставьте «Нет» в обоих параметрах. | * Аппаратный и программный контроль потока — если не уверены, то поставьте «Нет» в обоих параметрах. | ||
=== Определение занятости порта и монопольное использование === | === Определение занятости порта и монопольное использование === | ||
[[Image: Enable-disable serial port.png | | [[Image: Enable-disable serial port.png |300px|thumb|right| Отключение serial-порта в веб-интерфейсе контроллера Wiren Board ]] | ||
Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся. | Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся. | ||
Строка 19: | Строка 18: | ||
Проверим, свободен ли порт <code> /dev/ttyRS485-2</code>. Для этого выполните команду: | Проверим, свободен ли порт <code> /dev/ttyRS485-2</code>. Для этого выполните команду: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="console"> | ||
fuser /dev/ttyRS485-1 | # fuser -v /dev/ttyRS485-1 | ||
USER PID ACCESS COMMAND | |||
/dev/ttyS2: root 32296 F.... wb-mqtt-serial | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт. | Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт. В примере выше порт занят драйвером wb-mqtt-serial. | ||
В контроллерах Wiren Board порты <code>/dev/ttyRS485-1</code> и <code>/dev/ttyRS485-2</code> обычно заняты драйвером <code>wb-mqtt-serial</code>. Перед работой с этими портами — остановите драйвер одним из способов: | В контроллерах Wiren Board порты <code>/dev/ttyRS485-1</code> и <code>/dev/ttyRS485-2</code> обычно заняты драйвером <code>wb-mqtt-serial</code>. Перед работой с этими портами — остановите драйвер одним из способов: | ||
* [[wb-mqtt-serial#Управление драйвером | Остановить драйвер]] из командной строки. | * [[wb-mqtt-serial#Управление драйвером | Остановить драйвер]] из командной строки. | ||
* [[RS-485:Configuration via Web Interface | В веб-интерфейсе контроллера]], в настройках serial-порта снять галочку | * [[RS-485:Configuration via Web Interface | В веб-интерфейсе контроллера]], в настройках serial-порта снять галочку '''Enable port''' и сохранить настройки. | ||
== | == Программы для работы с serial-портом == | ||
Программы для разных ОС: | |||
* Linux: [[Serial_tool | Serial_tool]], [[Minicom | Minicom]], [[PuTTY | PuTTY]]. | |||
* Windows: [[PuTTY | PuTTY]]. | |||
* macOS: [https://www.ssh.com/ssh/putty/mac/ PuTTY for Mac OS X] или терминальный клиент <code>cu</code>: <code>cu -s 115200 -l /dev/usbmodem00001</code> | |||
* Android: [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console] и другие аналогичные программы. | |||
cu -s 115200 -l /dev/usbmodem00001 | |||
</ | |||
Дополнительно: | |||
* Если вы не можете использовать программы из этой статьи — посмотрите [http://elinux.org/RPi_Serial_Connection этот список]. | |||
* Если serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты [[modbus_client]]. | |||
* Вы пишете скрипт или свою программу для работы с serial-портом — руководствуйтесь советами из [https://tldp.org/HOWTO/Serial-Programming-HOWTO/ Serial-Programming-HOWTO]. | |||
== | <gallery mode="traditional" widths="250px" caption="Примеры работы с serial-портом в различных программах"> | ||
Image: Akko setting address.png |Отправка команд через [[serial_tool]] | |||
Image: Minicom-AT-4G.png | Отправка AT-команд в программе [[minicom]] | |||
Image: Putty serial logged in.png | Работа с Debug-консолью в [[PuTTY]] | |||
</gallery> |