Сопоставление номера последовательного порта и номера слота в SIM-банке (Box)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сопоставление номера последовательного порта и номера слота в SIM-банке (Box)

Сообщение Anonymous »

Мне нужно сопоставить номер последовательного порта и слот сим-банка.
Мой сим-банк имеет 256 слотов (8 портов, 32 слота) и подключен по 8 последовательных портов к каждому порту устройства.
Как могу ли я получить номер порта банка, сопоставленного с 8 COM-портами?
import serial.tools.list_ports
import logging
import time

def execute_command(modem, command, wait_time=2):
try:
modem.write(f"{command}\r".encode())
time.sleep(wait_time)
return modem.readlines()
except serial.SerialException as e:
print(f"Error executing command {command} in {modem.port}: {str(e)}")
return []

try:
modem = serial.Serial("COM" + str(real_port), 115200, timeout=1)
for i in range(132, 164):
sub_modem.append(serial.Serial("COM" + str(i), 115200, timeout=1))

print(f"########## Real Port: {real_port} ##########")

for index, modem_cop in enumerate(sub_modem):
for port in range(1, 9):
formatted_string = "AT+SWIT{:02d}-{:04d}".format(port, 1)
response = execute_command(modem, formatted_string)

try:
operator = ''.join([line.decode('utf-8', errors='ignore') for line in response])
except UnicodeDecodeError as e:
print(f"Decoding error: {e}")
continue

if str("SWITCH OK") in operator:
try:
res_cop = execute_command(modem_cop, "AT+COPS=?")
try:
oper_cop = ''.join([line.decode('utf-8', errors='ignore').strip() for line in res_cop])

except UnicodeDecodeError as e:
print(f"Decoding error: {e}")
continue

except Exception as e:
print(e)

for index in enumerate(sub_modem):
sub_modem[index].close()
modem.close()

print(f"########## Real Port: {real_port} ##########")
logging.info(f"########## Real Port: {real_port} ##########")
except Exception as e:
print(f"Error: {e}")


Подробнее здесь: https://stackoverflow.com/questions/790 ... im-bankbox
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»