![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пожалуйста подскажите про COM порт... [D6, Win2k]
AndrewK © (2002-09-03 17:33:00)Подскажите пожалуйста кто-нибудь.
Надо написать программу для работы с внешним контроллером через COM порт. Попробовал использовать компоненту TvaComm от Async32. Разобрался как передавать и принимать байты.
Столкнулся с такой проблемой:
контроллер должен передавать пакет из 50 байт последовательно в ответ на мой вызов. При приеме возникает следующая ситуация байты принимаются и выдаются мне партиями по восемь штук. Нельзя ли сделать так, чтобы весь пакет принимался целиком и после этого выдавался для дальнейшей обработки?
Как правильно осуществляется посылка и прием потока байтов через COM порт?
Заранее благодарен за помощь.
AndrewK (2002-09-09 11:30:00) [1]Огромное всем спасибо.
Сергей Медяник_ (2002-09-06 19:34:00) [2]Кидаю на мэйл компонент, на котором благополучно связываюсь с микроконтроллером МК51. Скорость до 57600, буффер, свойство-количество накопленных байт в буффере, пакетный режим. Компонент надыбал в кладовке, давно.
To ALL: Разумеется всегда лучше писать самому, но когда времени так мало, что поспать некогда, тут лучше взять готовое :-)))))
Nikolab (2002-09-06 12:19:00) [3]Относно WinApi - Все можно писат на API, но идеиа Делфи - ето компоненти. Я с D2 ползую VARIAN ASYNC32 COMPONENT,(c) VARIAN SOFTWARE SERVICES NL, но уверен, что ест и много других хороших COM компонентов - в исходниках везде ест API - но почему надо искат колесо?
LStranger (2002-09-06 11:06:00) [4]... а на приеме сделай кольцевой буфер с анализатором - поймал начало пакета - жди хвост, дождался - обрабатывай ...
Tot (2002-09-06 09:44:00) [5]Да брось ты эти компоненты! Работай через API, просто и всё под твоим контролем.
catalogoanatom (2002-09-06 09:44:00) [6]Писать работу с COM надо на API.Есть в MS SDK хороший раздельчик - Communications, там всё расписано.
1 hCom:=CreateFile(PChar("COM1").....).
2 Заполняешь структуру DCB
Запись в порт WriteFile(hCom.....)
Чтение ReadFile(hCom....)
Мониторинг событий лучше перенести в отдельный поток. Вот и всё !
И не надо чужих компонентов, тем более без исходного текста.
AndrewK (2002-09-06 09:04:00) [7]Если кого есть AsyncPro для Delphi 6, киньте пожалуйста. Или ссылку где можно скачать попробовать.
NickB (2002-09-05 14:01:00) [8]Попробуйте найти и использовать AsyncPro в пакете от Turbo Power
Я лично доволен- есть све что надо и более
MBo (2002-09-05 09:13:00) [9]В кладовке есть компоненты для работы с ComPort, поройся там
AndrewK (2002-09-05 09:08:00) [10]2Aleks1
Насчет проанализировать несколько пакетов это понятно. Но как-то не очень красиво, имхо. Где-то должно настраиваться по сколько байт принимать. Только не нашел где.
Если у кого есть какой-нибудь рабочий модуль для работы с этой компонентой или нормальная справка киньте, пожалуйста, на мыло.
Может сам компонент заменить?
2MBo
В разделе статьи есть описание для работы с компонентой Comm32. Это то? Только сам компонент для Delphi 6 найти не могу. Но смысл понятен.
Aleks1 (2002-09-05 02:56:00) [11]> AndrewK © (03.09.02 17:33)
А в чем собственно проблема? Ну и пусть тебе выдаются партии по восемь "штук". Прими >= 50 "штук" и проанализируй их.
blackweber (2002-09-05 02:08:00) [12]
Квазиравномернонепрерывный (2002-09-04 10:13:00) [13]Работайте сразу через API, без промежуточных компонентов.
MBo (2002-09-04 10:01:00) [14]в разделе Статьи
AndrewK (2002-09-04 09:56:00) [15]Помогите кто-нибудь....