Форум по Delphi программированию



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.10.2010, 19:00
aleks_bmw aleks_bmw вне форума
Прохожий
 
Регистрация: 04.10.2010
Сообщения: 2
Репутация: 10
По умолчанию выделение пакетов из буфера COM порта

Здравствуйте!!!

Для работы с com портом и шиной i - bus использую компонент Vacomm
параметры (9600 bps, 8 data bits, Even parity, 1 stop bit.)

требуется принимать пакеты следующего вида

Source ID, length, Destination ID , data , cksum

пример: 80 0A BF 13 00 13 00 00 00 00 20

80 устройство , 0A длина ,BF какому устройству ,(13 00 13 00 00 00 00) сообщение устройству , 20 XOR checksum (сумма байтов всего сообщения)

в событии OnRxChar я получаю байты из буфера com порта , т.к. пакет в большинстве случаев принимается не целиком а в несколько заходов , отсюда и возникла проблема с обработкой пакетов !!!

Прошу подсказать как полученные байты приводить в надлежащий вид т.е. в пакет для дальнейших действий с ними и как быть с неправильно принятыми пакетами ????
Ответить с цитированием
  #2  
Старый 04.10.2010, 19:34
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

с помощью pipe, например. либо читать из буфера остаточное количество до длины пакета.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 04.10.2010, 20:21
aleks_bmw aleks_bmw вне форума
Прохожий
 
Регистрация: 04.10.2010
Сообщения: 2
Репутация: 10
По умолчанию

что есть pipe ???

Цитата:
либо читать из буфера остаточное количество до длины пакета.
.

вопрос:
а по скольку байт мах может быть в буфере при наступлении OnRxChar , а то когда смотрел на принимаемые данные с шины , были случаи что при разовом срабатывании он принял сразу два пакета ~ 10 - 15 байт
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter   Ссылка на Telegram