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

 
 
> Об RS232, Как узнать конец посылки?
kolisnichenko_r
сообщение Sep 2 2009, 05:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Доброе время суток.
Начал разбираться с работой RS232 через потоки в WinXP. Байты бегают из компьютера, на компьютер. Никак не могу определить момент, когда отослался последний бит посылки. Какие есть сигнализаторы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Sep 2 2009, 08:17
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



При использовании EV_TXEMPTY есть одна подлая особенность - то, что буфер пуст, не означает, что последний байт передан.
Поэтому, например, когда мне нужно было переключать направление в полудуплексном RS-485, я добавлял в конец пакета фиктивный байт, по опустошению буфера переключал направление (ногой DTR) и последний байт "улетал в пустоту".
Можно отсчитать паузу от эвента, но это дополнительная морока.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Sep 2 2009, 08:41
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Цитата(MrYuran @ Sep 2 2009, 11:17) *
При использовании EV_TXEMPTY есть одна подлая особенность - то, что буфер пуст, не означает, что последний байт передан.
Поэтому, например, когда мне нужно было переключать направление в полудуплексном RS-485, я добавлял в конец пакета фиктивный байт, по опустошению буфера переключал направление (ногой DTR) и последний байт "улетал в пустоту".
Можно отсчитать паузу от эвента, но это дополнительная морока.

Какую задержку нужно выставить, пару милисекунд?
У меня тоже полудуплексный RS-485. Сделал так (без отслеживвания EV_TXEMPTY ):
поставил задержку после запуска передачи 10 мс, потом переключаю направление ногой RTS. Так не всегда успевает или все передать, или все принять. Добавил еще задержку 20 мс ответа в приборе. Пока помогло, но что будет на другом ПК, или если операционка еще что-то будет делать.
Это заставило поискать альтернаттиву.
Go to the top of the page
 
+Quote Post
Methane
сообщение Sep 2 2009, 08:49
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(kolisnichenko_r @ Sep 2 2009, 11:41) *
Какую задержку нужно выставить, пару милисекунд?
У меня тоже полудуплексный RS-485. Сделал так (без отслеживвания EV_TXEMPTY ):
поставил задержку после запуска передачи 10 мс, потом переключаю направление ногой RTS. Так не всегда успевает или все передать, или все принять. Добавил еще задержку 20 мс ответа в приборе. Пока помогло, но что будет на другом ПК, или если операционка еще что-то будет делать.
Это заставило поискать альтернаттиву.

Самый мне понравившийся вариант, это просто слушать сам себя. Принимать сообщение, которое уходит в линию. Как только декодировал отправленное сообщение, сразу вырубать передачу.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kolisnichenko_r   Об RS232   Sep 2 2009, 05:20
- - Methane   Цитата(kolisnichenko_r @ Sep 2 2009, 08:2...   Sep 2 2009, 05:51
- - MrYuran   А смысл? Есть эвент на последний байт пакета (буф...   Sep 2 2009, 05:52
|- - kolisnichenko_r   Спасибо за наводку, буду разбирать   Sep 2 2009, 08:01
|- - MrYuran   Цитата(Methane @ Sep 2 2009, 12:49) Самый...   Sep 2 2009, 08:59
|- - Demeny   Цитата(MrYuran @ Sep 2 2009, 12:59) Мне в...   Sep 2 2009, 10:22
|- - singlskv   Цитата(Demeny @ Sep 2 2009, 14:22) В стан...   Sep 3 2009, 21:51
- - manul78   Блин, у меня тоже похожая , но немножко другая ...   Sep 2 2009, 09:24
|- - Dog Pawlowa   Цитата(manul78 @ Sep 2 2009, 12:24) стоит...   Sep 2 2009, 09:32
||- - manul78   Цитата(Dog Pawlowa @ Sep 2 2009, 13:32) Э...   Sep 2 2009, 09:39
||- - MrYuran   Цитата(manul78 @ Sep 2 2009, 13:39) прихо...   Sep 2 2009, 09:54
||- - manul78   Цитата(MrYuran @ Sep 2 2009, 13:54) пешыт...   Sep 2 2009, 10:17
|- - MrYuran   Цитата(manul78 @ Sep 2 2009, 13:24) испол...   Sep 2 2009, 09:33
- - @Ark   По-моему, проблема слегка надумана. Если речь идет...   Sep 3 2009, 22:16
|- - singlskv   Цитата(@Ark @ Sep 4 2009, 02:16) Нормальн...   Sep 3 2009, 22:45
- - @Ark   ЦитатаКонечно идеальный вариант прикрутить к каждо...   Sep 3 2009, 23:02
|- - kolisnichenko_r   Цитата(@Ark @ Sep 4 2009, 02:02) Это не и...   Sep 4 2009, 05:48
- - @Ark   ЦитатаА каким способом Вы разделяете передачу, при...   Sep 4 2009, 05:58
|- - kolisnichenko_r   Цитата(@Ark @ Sep 4 2009, 08:58) Вот здес...   Sep 4 2009, 06:34
- - @Ark   ЦитатаХорош способ, только мне не подходит, в прео...   Sep 4 2009, 07:04
|- - MrYuran   Цитата(@Ark @ Sep 4 2009, 11:04) Поищите ...   Sep 4 2009, 07:09
- - @Ark   Я думаю, что автоматический режим, описанный выше,...   Sep 4 2009, 07:17
|- - demiurg_spb   С USB и чипом от ftdi у нас получилcя такой девайс...   Sep 4 2009, 08:23
||- - singlskv   Цитата(demiurg_spb @ Sep 4 2009, 12:23) С...   Sep 4 2009, 19:20
||- - rezident   Цитата(demiurg_spb @ Sep 4 2009, 14:23) С...   Sep 4 2009, 21:05
||- - demiurg_spb   Цитата(rezident @ Sep 5 2009, 01:05) Это ...   Sep 5 2009, 09:49
|- - kolisnichenko_r   Цитата(@Ark @ Sep 4 2009, 10:17) Я думаю,...   Sep 7 2009, 05:52
|- - Сергей Борщ   Цитата(kolisnichenko_r @ Sep 7 2009, 08:5...   Sep 7 2009, 07:37
|- - kolisnichenko_r   Цитата(Сергей Борщ @ Sep 7 2009, 10:37) Г...   Sep 7 2009, 09:30
- - ADA007   Кто знает? Существует ли нормы на Baud Rate Error ...   Nov 7 2009, 09:38
- - zltigo   Цитата(ADA007 @ Nov 7 2009, 12:38) Либо э...   Nov 7 2009, 09:49
- - V_G   Цитата(ADA007 @ Nov 7 2009, 19:38) Кто зн...   Nov 7 2009, 10:02


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

 


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


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