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

 
 
> Чтение из ком-порта на Пайтоне
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
Ответов
Zlon
сообщение Aug 18 2012, 08:22
Сообщение #2





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



Например, есть такая структура на Си.
Код
struct
{
    int temperatura;
    unsigned char voltage;
    int crc;
} packet;


На Пайтоне будет вот так
Код
temperatura = 1234
voltage = 1
crc = 1234
packet = [temperatura, voltage, crc]
print struct.pack('iBi', *packet) # выравнивание я потом поставлю какое нужно будет

Это можно как-то еще оформить?

И может у кого-то есть пример как обычно распознают пакеты на Пайтоне?
Рассмотрим пример с более сложным протоколом. Возникает ситуация когда чтение начнется с середины пакета. Я должен дочитать пакет до конца, найти заголовок следующего пакета, проверить контрольную сумму и взять из него нужные данные. Тут больше ничего не нужно?
Дальше возникает ситуация что виндоус была занята и при следующем чтении я получаю сразу два и более пакета. Такая ситуация возможна?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:26
Рейтинг@Mail.ru


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