Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Опрос COM-порта под Win9x [D5, Win95/98]


Vince ©   (2004-02-26 21:30:00) 

Hello многоуважаемы ALL!
Сразу извиняюсь за свою просьбу, знаю, что это не принято, но другого выхода у меня нет...
У меня есть исходник программы на Паскале для опроса COM-порта...я пытался ее переписать на
Delphi, но безуспешно...и фикус в том что мне это даже не нужно...куратор запряг, так и сказал
"Не сделаешь - будут проблемы...". Прошу вашей помощи...может найдется добрый человек и поможет
мне...
Сам исходник:
program dixbits;
uses crt;
var n, f, e : byte;
   b, g : integer;
   d : real;
procedure init;
begin
b:=$3F8; n:=10;
port[b+4]:=1;
delay(100);
port[b+3]:=64;
delay(500);
end;
procedure acquisition;
begin
port[b+4]:=0; d:=0;
for f :=0 to n-1 do
 begin
  port[b+4]:=2;
  e:=port[b+6] and 16;
  port[b+4]:=0;
  if e=16 then d:=d+exp((n-1-f)*ln(2));
 end;
d:=(5*d)/(exp((n)*ln(2))-1);
end;

procedure affiche;
begin
acquisition;
d:=(int(100*d))/100;
writeln(d);
delay(500);
end;

begin
clrscr;
init;
for g:=1 to 20 do
 begin
  affiche;
 end;
end.


Карелин Артем   (2004-02-27 10:42:00) [1]

Есть сайт Torry.net с кучей компонентов под это дело. Есть бесплатные в исходном коде.


tesseract   (2004-02-27 10:04:00) [2]

Лучший выход - CreateFile. И под 9х и под NT-ми пойдёт. Только с XP траблы - там желательно поставить альтернативный драйвер.

И ещё про CreateFile - она работает с любыми портами - так если поставить PCI- контроллер прямая запись работать не будет. Не говоря уже о гейтах RS232 в Ethernet или USB.


Reindeer Moss Eater   (2004-02-27 08:42:00) [3]

Win9x,Win2k,WinXP:

uses Windows;

CreateFile
SetCommMask
WaitCommEvent
WaitForSingleObject


Talla2k   (2004-02-27 01:53:00) [4]

Во первых в Delphi нет оператора port(вернее есть ,но только в версии 1).Во вторых если тебе в лом все это переделывать на API,то принцип такой
procedure port(addr:word;value:byte);
 begin
      asm
      mov dx,addr
      mov al,value
      out dx,al
      end;
 end;
И соответственно используешь эту процедуру.НО все это будет работать только на Win 9x про 2k and XP забудь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо