Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизОпять вопрос по работе с COM портом. Найти похожие ветки
← →
John_Korsh (2006-01-29 14:20) [0]Не поможете ли с простой задачей. Как грамотно дождаться окончания посылки байта при работе с COM портом?
Я использовал процедуру вида
procedure TMy_Com.putb_ex(b : byte;
var res :boolean);
{ Send one byte. }
var
stat : dword;
i : longint;
begin
stat := 0;
i := 0;
While ((stat <> 1) and
(i < 30000)) do
begin
WriteFile(com,
b,
1,
stat,
nil);
i := i + 1;
end;
if stat = 1 then
begin
res := True;
end
else
begin
res := False;
end;
end;
При работе с реальным COM портом это работает, если же используется виртуальный порт на USB, то разваливается. Пока использую Sleep (2) после каждого байта (у меня 9600) - это плохо - напрасное ожидание.
Пршу извинени за плохой стиль в Delphi - я далеко не мастер, поэтому, если кто ответит - желателен пример.
← →
Kolan © (2006-01-29 15:15) [1]Попробую вам помочь.
Во первых зачем надо ждать конца посылки?
2. Если процесс отсылки байт засунить в поток то Sleep(2) нормальный вариант.
3. Неплохая статья: http://bcbsql.narod.ru/pub/rabcomm.htm
← →
John_Korsh (2006-01-29 15:53) [2]Спасибо, жить стало маленько полегче.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.056 c