|
|
Строка 75: |
Строка 75: |
| Другие примеры использования утилиты можно посмотреть в статьях о настройке приводов штор, например, [[Akko AM82]]. | | Другие примеры использования утилиты можно посмотреть в статьях о настройке приводов штор, например, [[Akko AM82]]. |
|
| |
|
| === Minicom ===
| | Об использовании Minicom для подключения к serial-порту читайте в [[Minicom | статье Minicom]]. |
| Minicom — утилита для отправки и получения символьных команд. Её удобно использовать для работы с устройствами, которые управляются текстовыми командами и выводят текстовые сообщения в ответ. Например, c помощью minicom удобно отправлять AT-команды на GSM-модемы или получать данные с GPS-модулей, которые работают по протоколу NMEA.
| |
| | |
| Утилита minicom предустановлена на все контроллеры Wiren Board, а на ПК с ОС Linux её нужно будет установить. Для установки minicom на ПК с ОС Linux, выполните поочереди команды:
| |
| <syntaxhighlight lang="bash">
| |
| sudo apt update
| |
| sudo apt install minicom
| |
| </syntaxhighlight>
| |
| | |
| Для запуска minicom нужны права суперпользователя, на контроллерах Wiren Board вы уже работаете под суперпользователем, а на ПК с ОС Linux используйте <code>sudo</code>.
| |
| | |
| ==== Настройка параметров подключения ====
| |
| [[Image: Minicom settings.png |500px|thumb|right| Пример настройки параметров подключения в minicom ]]
| |
| [[Image: Minicom-AT-4G.png |500px|thumb|right| Отправка AT-комманд для модема в терминале программы [[minicom]]]] | |
| Для настройки параметров подключения, запустите утилиту с ключом -s и укажите имя профиля, в который хотите сохранить настройки.
| |
| | |
| Например, настроим соединение с портом <code>/dev/ttyGSM</code>:
| |
| # Запустите minicom от имени суперпользователя в режиме настройки соединения и укажите имя профиля, например, '''ttyGSM''':
| |
| #: <syntaxhighlight lang="bash">
| |
| minicom -s ttyGSM
| |
| </syntaxhighlight>
| |
| # В появившемся меню '''Configuration''', выберите пункт '''Serial port setup'''.
| |
| # Теперь выберите нужные пункты нажатием соответствующих клавиш на клавиатуре, меняйте настройки и каждое изменение подтверждайте клавишей <kbd>Enter</kbd>:
| |
| #* <kbd>A</kbd> — введите имя serial-порта: <code>/dev/ttyGSM</code>.
| |
| #* <kbd>E</kbd> — откроется окно '''Comm Parameters''', в котором нужно указать:
| |
| ## Скорость соединения, секция '''Speed''' — выберите <kbd>E</kbd> — 115200.
| |
| ## Количество битов данных, секция '''Data''' — выберите <kbd>V</kbd> — 8 бит.
| |
| ## Бит чётности, секция '''Parity''' — выберите <kbd>L</kbd> — None.
| |
| ## Количество стоповых битов, секция '''Stopbits''' — выберите <kbd>W</kbd> — 1 стоп-бит.
| |
| #* '''Hardware flow control''' (аппаратный контроль потока) — клавиша <kbd>F</kbd> переключает состояние, выберите '''No'''.
| |
| #* '''Software flow control''' (программный контроль потока) — клавиша <kbd>G</kbd> переключает состояние, выберите '''No'''.
| |
| # Выйдете из настроек порта в главное меню, нажав <kbd>Enter</kbd>.
| |
| # Сохраните настройки в профиль, для этого выберите '''Save Setup as ttyGSM'''.
| |
| # Закройте minicom, для этого выберите в меню пункт '''Exit from Minicom'''.
| |
| | |
| ==== Запуск с сохранёнными настройками ====
| |
| В предыдущем пункте мы создали профиль настроек, теперь мы можем запустить minicom с этим профилем:
| |
| <syntaxhighlight lang="bash">
| |
| ~# minicom ttyGSM
| |
| | |
| Welcome to minicom 2.7
| |
| | |
| OPTIONS: I18n
| |
| Compiled on Apr 22 2017, 09:14:19.
| |
| Port /dev/ttyGSM, 10:03:25
| |
| | |
| Press CTRL-A Z for help on special keys
| |
| </syntaxhighlight>
| |
| | |
| Чтобы отправить команды serial-устройству — вводите их в терминале и нажимайте клавишу <kbd>Enter</kbd>.
| |
| | |
| Для вызова справки зажмите одновременно клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, а затем клавишу <kbd>A</kbd>.
| |
| | |
| Чтобы выйти из minicom — нажмите одновременно клавиши <kbd>Ctrl</kbd>+<kbd>A</kbd>, а затем клавишу <kbd>X</kbd>.
| |
| | |
| ==== Запуск утилиты без профиля ====
| |
| Если вам нужно один раз соединиться с serial-устройством, то вы можете не создавать профиль, а указать параметры подключения прямо в аргументах командной строки.
| |
| | |
| Например, для соединения с модемом, который подключен к порту <code>/dev/ttyGSM</code> нужно ввести команду:
| |
| <syntaxhighlight lang="bash">
| |
| minicom -D /dev/ttyGSM -b 115200 -8 -a off
| |
| </syntaxhighlight>
| |
| | |
| {| border="1" class="wikitable"
| |
| |+ Расшифровка параметров
| |
| ! Аргумент|| Значение|| Описание
| |
| |-
| |
| | -D || /dev/ttyGSM || Порт, к которому подключено serial-устройство
| |
| |-
| |
| | -b || 115200 || Скорость порта, в бит/с
| |
| |-
| |
| | -8 || 8 || Количество битов данных
| |
| |-
| |
| | -a || off|| Контроль потока данных
| |
| |-
| |
| | || || Остальные параметры оставлены по умолчанию
| |
| |-
| |
| |}
| |
| | |
| Полный перечень аргументов смотрите во встроенной справке, которую можно вызвать командой:
| |
| <syntaxhighlight lang="bash">
| |
| ~# minicom -h
| |
| Usage: minicom [OPTION]... [configuration]
| |
| A terminal program for Linux and other unix-like systems.
| |
| | |
| -b, --baudrate : set baudrate (ignore the value from config)
| |
| -D, --device : set device name (ignore the value from config)
| |
| -s, --setup : enter setup mode
| |
| -o, --noinit : do not initialize modem & lockfiles at startup
| |
| -m, --metakey : use meta or alt key for commands
| |
| -M, --metakey8 : use 8bit meta key for commands
| |
| -l, --ansi : literal; assume screen uses non IBM-PC character set
| |
| -L, --iso : don't assume screen uses ISO8859
| |
| -w, --wrap : Linewrap on
| |
| -H, --displayhex : display output in hex
| |
| -z, --statline : try to use terminal's status line
| |
| -7, --7bit : force 7bit mode
| |
| -8, --8bit : force 8bit mode
| |
| -c, --color=on/off : ANSI style color usage on or off
| |
| -a, --attrib=on/off : use reverse or highlight attributes on or off
| |
| -t, --term=TERM : override TERM environment variable
| |
| -S, --script=SCRIPT : run SCRIPT at startup
| |
| -d, --dial=ENTRY : dial ENTRY from the dialing directory
| |
| -p, --ptty=TTYP : connect to pseudo terminal
| |
| -C, --capturefile=FILE : start capturing to FILE
| |
| -F, --statlinefmt : format of status line
| |
| -R, --remotecharset : character set of communication partner
| |
| -v, --version : output version information and exit
| |
| -h, --help : show help
| |
| configuration : configuration file to use
| |
| | |
| These options can also be specified in the MINICOM environment variable.
| |
| This variable is currently unset.
| |
| The configuration directory for the access file and the configurations
| |
| is compiled to /etc/minicom.
| |
| | |
| Report bugs to <minicom-devel@lists.alioth.debian.org>.
| |
| </syntaxhighlight>
| |
|
| |
|
| === PuTTY === | | === PuTTY === |
Linux
Реализация serial-портов
Полное описание читайте в документации, вот выжимка из неё:
- В serial-порт можно посылать данные и получать данные из него.
- В ОС Linux serial-порты — это псевдофайлы из папки
/dev
. Например, в контроллерах Wiren Board это могут быть /dev/ttyGSM
, /dev/ttyRS485-1
, /dev/ttyUSB0
— у всех в названии есть tty
.
Перед началом работы с serial-портом, настройте его скорость и параметры так же как настроено подключённое к нему устройство:
- Скорость в битах в секунду, самое популярное — 115200 бит/с.
- Количество бит в символе, чётность и количество стоп-битов. Популярна конфигурация 8N1 — восемь бит в символе, без проверки чётности, один стоп-бит.
- Аппаратный и программный контроль потока — если не уверены, то поставьте «Нет» в обоих параметрах.
Определение занятости порта и монопольное использование
Отключение serial-порта в веб-интерфейсе контроллера Wiren Board
Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся.
Используйте команду fuser для того, чтобы определить, свободен ли порт. В качестве параметра передайте порт, который нужно проверить.
Проверим, свободен ли порт /dev/ttyRS485-2
. Для этого выполните команду:
Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт.
В контроллерах Wiren Board порты /dev/ttyRS485-1
и /dev/ttyRS485-2
обычно заняты драйвером wb-mqtt-serial
. Перед работой с этими портами — остановите драйвер одним из способов:
Serial_tool
Пример работы с утилитой serial_tool
Serial_tool — утилита для отправки и получения наборов бит. Используйте её для отправки и получения данных в шестнадцатеричном формате: побитово, группами по четыре бита.
Утилита serial_tool предустановлена на все контроллеры Wiren Board. На компьютеры с Linux её нужно установить из нашего репозитория.
Для вызова справки по утилите, запустите утилиту с параметром -h
:
~# serial_tool -h
usage: serial_tool [-h] [-b BAUD] [-p PARITY] [-d DATA_BITS] [-s STOP_BITS]
[-t READ_TIMEOUT]
port
serial_tool - interactive hex serial port console
positional arguments:
port Serial port to open, i.e. /dev/ttyXXX
optional arguments:
-h, --help show this help message and exit
-b BAUD, --baud BAUD Baud rate (default: 9600)
-p PARITY, --parity PARITY
set parity, one of [N, E, O, M, S] (default: N)
-d DATA_BITS, --data-bits DATA_BITS
set number of data bits, i.e. bytesize (default: 8)
-s STOP_BITS, --stop-bits STOP_BITS
set number of stop bits, one of [1, 1.5, 2] (default:
1)
-t READ_TIMEOUT, --timeout READ_TIMEOUT
number of seconds to wait for answer (default: 1)
Например, запишем последовательность бит в порт /dev/ttyRS485-1 с параметрами порта 8N2 и таймаутом в одну секунду:
~# serial_tool -b 9600 -p N -d 8 -s 2 -t 1 /dev/ttyRS485-1
serial_tool on /dev/ttyRS485-1: 9600 8N2.0
Enter your commands below in HEX form.
All characters but 0-9,a-f including spaces are ignored.
Press Control-D or Control-C to leave the application.
Press [Enter] to print received data
>> FF FF 0A 01 11 00 00 1C
<< FF FF 0A 00 11 00 00 1B
Другие примеры использования утилиты можно посмотреть в статьях о настройке приводов штор, например, Akko AM82.
Об использовании Minicom для подключения к serial-порту читайте в статье Minicom.
PuTTY
Об использовании PuTTY для подключения к serial-порту читайте в статье PuTTY.
Протокол Modbus RTU
Если serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты modbus_client.
Собственное ПО
Если вы пишете скрипт или свою программу для работы с serial-портом, то руководствуйтесь советами из Serial-Programming-HOWTO.
Windows
Для подключения к serial-порту в ОС Windows используйте PuTTY.
macOS
В macOS используйте:
Android
На устройствах с Android можете использовать USB Serial Console и другие аналогичные программы.
Прочие программы
Если по каким-то причинам вы не можете использовать программы из этой статьи — посмотрите этот список программ.