@IvanGeso
Релейщик

Как отправить AT-команду из скрипта на Python на модем и получить ответ?

Всем доброго времени суток. Подскажите, как можно было бы наиболее правильно и эффективно решить следующую задачу:
  1. Имеем устройство на Linux, на котором крутится скрипт на Python.
  2. Имеем LTE-роутер на модифицированной производителем OpenWRT. Модель IRZ RL-01 (на всякий случай). В составе роутера есть модем, с которым можно общаться AT-командами.
  3. Роутер подключен к устройству на Linux патч-кордом. Устройство в данном случае выступает в качестве клиента и получает ip по DHCP от роутера.
  4. Есть необходимость из скрипта на Python отправлять AT-команды на модем роутера и получать ответы для дальнейшей обработки в скрипте.

Знаю, что есть разнообразные утилиты, типа Minicom, но этот инструмент скорее для интерактивного ввода AT-команд на модем, непосредственно подключенный к компьютеру. Мне же нужно, чтобы определенные команды отправлялись автоматически (причем через TCP/IP т.к. модем стоит на роутере, который в свою очередь подключен к целевому устройству), а затем анализировались скриптом.

Есть ли какие-нибудь адекватные способы реализовать нужное мне поведение? Скрипт на роутере разворачивать вообще не вариант т.к. там очень ограниченные железные ресурсы.
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Включаете "Конвертер TCP - последовательный порт" и общаетесь с ним по сети через сокеты.

s = socket(AF_INET, SOCK_STREAM)
s.connect((ip, port))
s.sendall(bytes("AT?\n","ASCII"))
sleep(1.0)
st = ""
while st[-1]!="\n":
    st+=s.recv(1)

можно еще попробовать телнет биб https://docs.python.org/3/library/telnetlib.html

там есть read_until с таймаутом
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы