Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

вопрос по написанию программы передачи данных через порты   Найти похожие ветки 

 
Алексей Шолкин   (2004-05-14 16:12) [0]

Здравствуйте  участники !
Хотелось бы получить консультацию по поводу как в Delphi организовать передачу данных по COM2 и  LPT портам . Поиск в Интернете ни чего конкретно не дал. В журнале нашёл программу  передачи данный по COM2 но в ней не всё понятно (чего понятно написал коментарий на остольные команды ответа не нашёл) и как бы ни чего не принимает с ком порта.
Вот эта программа просьба помочь с ней разобраться.
Как организовать передачу данных через LPT  ? (я заменил в этой программе COM2 на LPT и убрал но у меня ни чего не получилось)

var
 MainForm: TMainForm;
 hCOM,hOUTFile:tHandle;
 DCB:tDCB;
 Stat:tCOMStat;
 ByteCount:dWord;
 Lock:bool;
 DataBuf:array[1..45] of byte;

Const

 BufSize=SizeOf(DataBuf);

procedure TMainForm.N8Click(Sender: TObject);
begin
  Stat.cbInQue:=0;
  ByteCount:=0;
  Lock:=true;
    hCOM:=CreateFile("COM2",GENERIC_READ,0,nil, //открывает коммуникационные ресурсы
    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if hCOM=INVALID_HANDLE_VALUE then begin
     ShowMessage("Не могу открытьпорт");
     Application.Terminate;
     end;
    ShowMessage("Oткрыт порт COM2");
    ShowMessage("Идёт настройка порта");
    SetupComm(hCom,1600,1600);           // размер буфферов ввода вывода
    GetCommState(hCOM,DCB);             //читает текущие настройки ресурсов
    with DCB do begin
    BaudRate:=9600;                     // Скорость передачи
    ByteSize:=8;                        // количество бит в байте
    Parity:=EvenParity;                 // бит паритета
    StopBits:=OneStopBit;               // стоп биты
    end;
    SetCommState(hCOM,DCB);             //устанавлиает настройки ресурсов
    if not SetCommState(hCOM,DCB) then begin
    ShowMessage("Порт COM2 не настроен");
    Application.Terminate;
    end;
   hOUTFile:=CreateFile("OUT.BIN",GENERIC_READ or GENERIC_WRITE,0,nil,
   OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
   if hOUTFile=INVALID_HANDLE_VALUE then begin
   ShowMessage("Не могу открыть выходной фаил");
   Application.Terminate;
   end;
   Lock:=false;
end;

procedure TMainForm.Timer1Timer(Sender: TObject);
var I,Blocks,Errors,Bytes:dWord;
begin
STPanel.Panels[1].Text:="Тикущая Дата / " + DateToStr(Date);
STPanel.Panels[2].Text:="Тикущее время / " + TimeToStr(Time);
if not Lock then begin
     Lock:=true;
     ClearCommError(hCom,Errors,@Stat);
     Blocks:=Stat.cbInQue div BufSize;
     ShowMessage("Идёт передача");
     if Blocks>0 then begin
        for I:=1 to Blocks do begin
         if not ReadFile(hCOM,DataBuf,BufSize,Bytes,nil) then Beep;
     WriteFile(hOUTFile,DataBuf,BufSize,Bytes,nil);
     inc(ByteCount,Bytes);
        end;
     FlushFileBuffers(hOUTFile);
     end;
 Label1.Caption:="Прочитано - "+IntToStr(Blocks)
           +" блоков.  Записано в фаил - "
           +IntToStr(ByteCount)+"  байт";

     end;
end;
Помогите разобраться или дайте пожалуйста ссылку где подробно описано как передать данные через порт COM 2 LPT


 
jack128 ©   (2004-05-14 20:08) [1]


> ClearCommError(hCom,Errors,@Stat);
возвращает информацию о состоянии порта

> Blocks:=Stat.cbInQue div BufSize;
Stat.cbInQue - кол - во данных в буффере ком порта ещё не прочитанных с помощью ReadFile

> FlushFileBuffers(hOUTFile
скидывает данные из буффера Windows в файл hOUTFile (для ускорения работы с диском винда кеширует чтение/запись)

> Помогите разобраться или дайте пожалуйста ссылку где подробно
> описано как передать данные через порт COM 2 LPT
на этом сайте две статьи были. Вообще инфы полно,странно, что ты не нашёл..



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

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
3-1085377603
den_777
2004-05-24 09:46
2004.06.20
Работа уникальными значениями


14-1086176191
Yanis
2004-06-02 15:36
2004.06.20
Assembler


1-1086340572
Uran
2004-06-04 13:16
2004.06.20
Отображение документа msword


14-1086268979
WebErr
2004-06-03 17:22
2004.06.20
Сканер штрих кода и его сообщения


14-1086183707
Alibaba
2004-06-02 17:41
2004.06.20
Video -> CD/DVD