Как я могу проверить модель устройства, подключенного к определенному COM через ssh-соединение

Ваш скрипт обычно запускается как служба, завершается довольно быстро (, так как есть только одна команда и в ней нет цикла while или чего-то подобного -ее выполнение )и поэтому служба завершается быстрее, чем вы может запросить его статус. Попробуйте добавить цикл (с тайм-аутом, чтобы не спамить ваши журналы ), чтобы иметь возможность видеть его активным:

while True:
    print('hello')
    time.sleep(2)

и убейте его через systemctl, как только вы увидите (сjournalctl -u test.service)достаточно.

1
20.06.2019, 14:10
1 ответ

Итак, главное не ПК, а загадочное устройство, подключенное к COM-порту?

К сожалению, COM-порт представляет собой соединение очень низкого уровня -без автоматически предоставляемых метаданных, поэтому не существует универсального инструмента, такого как lsserial, который мог бы прямо сообщить вам полезную информацию для идентификации устройства со 100% уверенностью.

Если вы не можете идентифицировать программное обеспечение, взаимодействующее с ним (, возможно, с помощью fuser /dev/ttyS*и получения информации о процессах по любым выявленным идентификаторам PID )и используйте это в качестве подсказки, или если нет процессов, активно использующих устройство, то вы должны попытаться «поговорить» с устройством и посмотреть, отвечает ли оно обычно используемому протоколу -, как указано @mosvy.

Если используется устройство, подключенное к COM-порту -, существует разумная вероятность того, что может быть установлен какой-либо эмулятор терминала, ориентированный на последовательный -порт -, например cutecom, minicom, seyonили аналогичный. Даже утилита последовательного порта UUCP старой школы -, такая как cu, может оказаться полезной. Если вы можете найти признаки того, что они использовались, или существующие файлы конфигурации для них, вы можете узнать из них используемые параметры последовательного порта, в противном случае может потребоваться много проб и ошибок.

Модемы, как правило, отвечали на «AT Enter » «ОК» и часто автоматически -определяли скорость COM-порта; после того, как базовая связь была установлена, вы можете использоватьATI1Enter и другие команды ATI с возрастающими номерами, чтобы получить базовую идентификационную информацию от модема.

Такие устройства, как приемники времени GPS или ИБП, могут периодически выдавать некоторые данные самостоятельно и могут использовать скорость до 1200 бит/с. Коммутаторы, маршрутизаторы и аналогичное сетевое оборудование могут отображать распознаваемый запрос на вход в систему, обычно с использованием скоростей портов, таких как 9600 бит/с, 38400 бит/с или 115200 бит/с.Другим вариантом может быть необходимость аппаратного установления связи (RTS/CTS и/или DSR/DTR )или нет. Для комбинаций бит/четность наиболее распространенной является 8n1, то есть 8 битов данных, без четности, 1 стоповый бит.

Вы также можете попробовать более косвенные методы, такие как проверка файла истории оболочки пользователя rootна наличие каких-либо специальных команд, которые использовались ранее в связи с COM-портом.

Привлечение кого-либо на объект для фактического осмотра устройства на конце кабеля COM-порта и, например,. Было бы здорово сфотографировать устройство с любой идентифицирующей информацией, такой как логотипы производителя или номера моделей, но я думаю, вы бы не спрашивали, легко ли это выполнимо.

Принтеры, вероятно, труднее всего идентифицировать удаленно через COM-порт :, например, командный язык принтера Epson ESC/P, похоже, вообще не включает никаких команд для считывания состояния. Если принтер понимает PCL, он может понимать и PJL. В этом случае вы можете попробовать это:

(exec <>/dev/ttySn; stty sane; printf "\e%-12345X@PJL INFO ID\n" >&0; cat)

Если принтер понимает PJL, он должен ответить идентификацией своей модели. Заменив слово IDна CONFIGили VARIABLES, вы можете получить от принтера еще больше информации.

3
27.01.2020, 23:22

Теги

Похожие вопросы