реклама на сайте
подробности

 
 
> Чтение из ком-порта на Пайтоне
Zlon
сообщение Aug 17 2012, 11:18
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 17-08-12
Пользователь №: 73 164



Знакомый порекомендовал обратиться с моим вопросом к пользователю dxp на этом форуме. Но письмо отправить ему я не могу. Надеюсь, он увидит это сообщение и даст совет. Также надеюсь, что он не один тут специалист по Пайтону и поможет кто-то еще sm.gif
Вопрос у меня такой. Как правильно обращаться с ком портом в Пайтоне?
Имеется АТмега, которая меряет температуру и посылает ее через rs232.
Теперь хочу разобраться как правильно организовать чтение/запись в порт. Нашел вот такой пример https://github.com/gregpinero/ArduinoPlot
Меня смутило то что чтение происходит по таймеру. Я думал что это должно происходить по событию. Ну и там описано только как читать. А вот если мне нужно послать команду АТмеге, то это тоже в потоке делать иил можно напрямую вызывать serial.write()?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Aug 18 2012, 09:10
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Структуру естественно превратить в класс:
Код
class pkt :
   def __init__(self, t, v) :
      self.temperatura = t
      self.voltage = v
      self.crc = 0 #тут надо подумать
#далее в программе:
paket = pkt( 1234, 1 ) #создали экземпляр класса

Для crc логично было бы просто вызвать функцию, которая его посчитает.

Но дальше становится интереснее, поскольку пакеты могут быть различных типов, с различными полями.
Можно завести один из элементов, определяющий тип пакета и в зависимости от него по-разному обрабатывать.
Для приёма/передачи можно определить функции сериализации и десериализации, преобразующие экземпляр нашего класса в строку и обратно, заодно и crc посчитать/проверить.



--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016