Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

Проблема с Async Professional   Найти похожие ветки 

 
Antonyan   (2006-04-16 00:19) [0]

Уважаемые Господа !
Я использую библиотеку Async Professional 4.06 & Delphi 5.
Работаю с Com портом. Есть проблема. Как я могу обратиться (желательно используя функции Async Professional) к регистру состояния линии, чтобы знать гарантировано, что данные ушли в линию. Вариант с таймаутами использовать не хочется, но в то же время прямой функции не обнаружил. Также буду благодарен за ссылку на документацию на русском языке.

Заранее благодарен


 
Германн ©   (2006-04-16 00:56) [1]

WaitCommEvent из WinAPI


 
Германн ©   (2006-04-16 01:55) [2]

Забыл сказать. Тут уж либо APro, либо WinAPI.

Недурно было бы ещё сказать - зачем тебе
>  знать гарантировано, что данные ушли в линию
? Может ты не там ищешь?


 
tesseract ©   (2006-04-16 08:07) [3]


> знать гарантировано, что данные ушли в линию.

из Winapi :
WriteFile сообщает сколько данных ушло.
Если не хочешь тормозить на этом процессе используй overlapped-стурктуру.


 
Antonyan   (2006-04-16 10:02) [4]

Спасибо за ответы, но вопрос открыт. Дело в том, что после отправки необходимо установить DTR=1. Если использовать функцию проверки выходного буфера из Async, то получается так : буфер пуст, ставим DTR=1,  а на самом деле регистр, отвечающий непосредственно за передачу, как раз в это время отправляет последний байт. И получается что ты сам рубишь сук на котором сидишь. Проверял осцилографом. Так вот поэтому необходимо обращаться в регистр состояния линии и проверять 6 бит на 1. Как только  там 1 - значит все отправлено. Но как туда залезть ?


 
tesseract ©   (2006-04-16 11:15) [5]


> Спасибо за ответы, но вопрос открыт. Дело в том, что после
> отправки необходимо установить DTR=1.


Обычно до отправки ставится RTS ждётся сигнал CTS, от устройства.
После отправки возможно действительно следует выставить DTR дабы ус-во поняло что операция не идёт.

Как правило эта проблема решается замывканием 4-6(RTS-CTS), 7-8 (DTR-DTS)
EscapeCommFunction c параметрами:
CLRDTR Clears the DTR (data-terminal-ready) signal.
CLRRTS Clears the RTS (request-to-send) signal.
SETDTR Sends the DTR (data-terminal-ready) signal.
SETRTS Sends the RTS (request-to-send) signal.


 
Antonyan   (2006-04-16 19:38) [6]

Блин, все равно что то не выходит ничего путного



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
2-1152523569
Delphi basic
2006-07-10 13:26
2006.07.30
Не отображаются вновь созданные поля


1-1147554310
Anton_112
2006-05-14 01:05
2006.07.30
Разбор математического выражения


6-1142577170
Dust
2006-03-17 09:32
2006.07.30
Ничего не могу понять.... :(


15-1151857716
Fl@sh
2006-07-02 20:28
2006.07.30
обьясните что за глюк??


2-1152159695
TaSk
2006-07-06 08:21
2006.07.30
Музыка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский