Работа с COM- портом из командной строки. Мониторинг
. вот все-таки батники незаслуженно игнорируются любителями высокоуровневых языков, а тем не менее даже на них можно решить задачи по мониторингу не только удаленных хостов, но и мониторинга COM-порта. К примеру, возникла задача реагирования (запуска какого-либо приложения) на приход сигнала на один из пинов, кнопка к примеру (выставить DTR тот же и замкнуть с CTS).
Напомню еще раз распиновку COM-порта:
Нам нужно управлять состоянием устройства ввода-вывода. Одной из таких команд — mode (синтаксис см. по mode /?):

Что мы видим? Видим возможность установки скорости, паритета, служебных пинов, паритета и иже с ними. А что нам даст обращение (mode com1) к конкретному COM-порту? А вот сие даст:
Состояние пинов и настроек порта. Можем прочитать? Можем. Для этого воспользуемся FIND=»параметр» (важно точное указание всех знаков):
Флаги:
«dtr=on» установит единичку на DTR.
«> nul» — этим мы убираем вывод ответа на экран.
«errorlevel» — отрабатываем результат выполнения.
Если команда FIND не нашла в ответе «CTS: ON», то повторить опрос по циклу. Ежели нашла, запустит блокнотик
Определение номера подключенного COM порта
Для правильного подключения оборудования, необходимо определить номер COM порта.
Проверка проводится при условии, что сервер полностью развернут, и работает заведомо правильно.
Windows
Для определения номера COM порта на ОС Windows необходимо:
- Убедиться в том, что многожильный кабель подключен к COM-порту
- Перейти в «Диспетчер устройств», расположенный в: Панель управления\Оборудование и звук\Диспетчер устройств (необходимы права администратора)
- Раскрыть дерево «Порты (COM и LPT)»
- Отсоединить многожильный кабель
- Запомнить изменения в дереве устройств «Порты (COM и LPT)»
- Присоединить многожильный кабель обратно к COM-порту
- Найти новый порт в дереве устройств «Порты (COM и LPT)»
8. После того, как номер COM-порта определен его необходимо указать в схеме SCADA, для устройства, подключенного многожильным кабелем.
Linux
Для определения номера COM порта на ОС Linux необходимо:
- Обладать правами Root либо пользователь должен входить в группу dialout
- Убедиться в том, что многожильный кабель подключен к COM-порту
- Проверить наличие COM портов в системе, введя в командную строку следующую команду:
4. После выполнения команды отобразится список всех доступных COM-портов
dev/ttyS0 — первый COM порт
/dev/ttyS1 — второй COM порт
/dev/ttyUSB0 — специальный кабель-переходник из USB в COM (Gembird UAS111)
5. Установить программу minicom. Для этого вводим следующую команду:
6. Найти многожильный кабель в оплётке длиной 4-6 см.
7. Соединить 2 и 3 выводы COM порта перемычкой из кусочка многожильного провода. Оплётка будет удерживать провод на контактах, а металлические жилы внутри будут проводниками.
8. Настроить программу minicom. Для этого вводим следующую команду:
9. Выбрать «Настройка последовательного порта»
10. Нажимая А поочередно выбираем порты (если используется кабель-переходник из USB в COM то выбрать /dev/ttyUSB0)
11. Отключить аппаратное управление потоком, нажав «F»
12. Выйти из настроек нажав «Enter»
13. Сохранить настройки по умолчанию «Сохранить настройки как dfl»
14. Выйти из minicom
15. Запустить minicom выполнив команду:
16. Нажать на любую клавишу на клавиатуре
В случае, если символы не вводятся с клавиатуры, необходимо вернуться к пункту 10, и выбрать другой COM-порт
Если вводимые символы отображаются — значит COM-порт определен верно
17. После того, как номер COM-порта определен его необходимо указать в схеме SCADA, для устройства, подключенного многожильным кабелем.
Как просмотреть последовательные COM-порты, но не через диспетчер устройств
Как мне просмотреть список используемых COM-портов без использования диспетчера устройств?
Я также не хочу устанавливать какое-либо программное обеспечение. Есть ли способ сделать это через командную строку?
6 ответов 6
В командной строке используйте
При использовании без параметров mode отображает все контролируемые атрибуты CON (консоли) и доступных COM устройств (а также LPT ).
Принимает /? Переключиться на базовую помощь:
В командной строке используйте:
Надеюсь это поможет.
Я знаю, что на вопрос ответили, но это еще один метод.
В командной строке используйте:
chgport
в Windows Vista и выше. Перечисляет ваши порты и какое устройство они.
В большинстве случаев в mode я не вижу устройств, которые не подключены.
Я предпочитаю использовать это решение с Python:
Таким образом, я вижу все, что подключено, даже если соединение закрыто.
serial.tools.list_ports из пакета pyserial.
wmic https://docs.microsoft.com/en-us/windows/desktop/wmisdk/wmic — утилита командной строки Windows для получения системной информации.
Если ваш последовательный порт виртуально создан каким-либо драйвером через USB-соединение, используйте этот пример для получения подробной информации об этих последовательных портах.
Ниже приведен список последовательных портов в переменной $ PORTS.
BASH MSYS2
Эта функция автоматически получит список портов
PORTS = /c/Windows/System32/mode.com | grep Status.* COM | awk ‘
Для списка (использовать) портов, см. Код ниже:
echo -n «Программирование (отображение) портов:» для aa в $ PORTS; do echo -n $ aa done echo «»
Как узнать номер COM порта батником
Добрый день форумчане.
Помогите пожалуйста сделать батник который будет показывать номер СОМ порта подключенных устройств к ПК.
Т.е при запуске батника он просто покажет мол такое устройство на таком СОМ порту.
Таких устройств 2. Они определяются одинаково. Различие в изготовителе в свойствах USB Serial Port (COM).
1-е Устройство определяется в диспетчере устройств во кладке "Порты (COM и LPT)".
Определяется как "USB Serial Port (COM)". В свойствах порта изготовитель "PAX Technology Co. Ltd".
2-е Устройство определяется в диспетчере устройств во кладке "Порты (COM и LPT)".
Определяется как "USB Serial Port (COM)". В свойствах порта изготовитель "FTDI".
Как узнать объем памяти компьютера с батником
Здравствуйте! Как узнать объем памяти жесткого диска и оперативной памяти, сколько всего, сколько.
Как узнать номер ком порта (ttyS*)
в общем надо узнать номер ком порта который в моём пк один. Я пользователь линукса(начинающий) и.
Как узнать номер порта и IP адрес в readDatagram?
По UDP получаю и считываю данные: QHostAddress *host = new QHostAddress(); quint16 *port;.
Как узнать? какой номер порта написать при создании Socket и ServerSocket (IP — localhost)?
Здравствуйте, впервые на Java пишу простенькое клиент-серверное приложение. Подскажите как узнать.
Сообщение от sotmotor
Сообщение от sotmotor
Открой редактор реестра и поиском найди ключ, где записана эта инфа. А дальше — RTFM по утилите REG.
Сообщение от sotmotor
Нужен батник который будет показывать номера СОМ порта подключенных устройств к ПК.
Т.е при запуске батника он просто покажет мол такое устройство определилось на таком то СОМ порту.
Нужно просто узнать номера СОМ портов интересующих нас 2-х устройств.
Если это нельзя сделать, то хотя бы вывести список всех устройств определившихся на ПК в СОМ портах. "Порты (COM и LPT)".
Если бы это было на 1-м ПК то бог с ним, но задача стоит узнать номера СОМ портов на которых определились устройства на 25 тыщ ПК.
Таких устройств 2. Они определяются одинаково. Различие в изготовителе в свойствах USB Serial Port (COM).
1-е Устройство определяется в диспетчере устройств во кладке "Порты (COM и LPT)".
Определяется как "USB Serial Port (COM)". В свойствах порта изготовитель "PAX Technology Co. Ltd".
2-е Устройство определяется в диспетчере устройств во кладке "Порты (COM и LPT)".
Определяется как "USB Serial Port (COM)". В свойствах порта изготовитель "FTDI".