Чтение последовательного порта и хранение данных в словареPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Чтение последовательного порта и хранение данных в словаре

Сообщение Anonymous »

Я довольно новичок в Python, и поэтому я хотел бы получить отзыв о коде, который я написал. Код открывает последовательный порт на радио, затем записывает команды и читает ответ. Ответ сохраняется в словаре для последующего использования. Это будет частью более крупной программы, которая позволит пользователю импортировать данные конфигурации радио в приложение, а затем вносить изменения и отправить его обратно на радио. Он также сможет сохранить данные в файл, чтобы различные конфигурации радио могли быть сохранены и загружены на радио для использования в разных ситуациях. Я скопировал код ниже. < /P>
import serial

def Read_Radio():
# Configure the serial port
ser = serial.Serial(
port='COM4',
baudrate=38400,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)

# Function to send a command to the device
def send_command(ser, command):
ser.write(command.encode())
response = ser.readline().decode()
return response

menu_data = {}

try:
# Read all Menu items and store in dictionary
for m in range(1, 15): # Limited to 15 for testing.
ID = f"{m:03}" # formats the ID to 3 characters
command = "EX" + str(ID) + ";" # creates the command to be sent
response = send_command(ser, command) # sends the command
raw = response.lstrip("EX") # strips the leading characters
raw = raw.rstrip(";") # strips the trailing character
P1 = raw[0:3] # pulls first three characters
P2 = raw[3:] # pulls after first 3 letters
menu_data.update({P1:P2}) # Saves the data pairs in a dict
except Exception as e:
print(f"An error occurred: {e}")
finally:
print(menu_data)
# Close the serial port
ser.close()

Read_Radio()
< /code>
Образец данных Outpument:
{'001': '0300', '002': '0700', '003': '3000', '004': '0 ',' 005 ':' 1 ',' 006 ':' 0 ',' 007 ':' 1 ',' 008 ':' 08 ',' 009 ':' 2 ', '010': '050', '011': '050', '012': '3', '013': '0', '014': '30'} < /p>
Результаты, как я ожидал. Я пытаюсь убедиться, что у меня есть данные в полезном формате и что мой код эффективен или может быть проще. Есть ли в моем коде что -нибудь, что может замедлить его.


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

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

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

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

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

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

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