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

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

LPT [D5, Win2k]


Den_lam ©   (2004-01-05 09:38:00) 

Есть девайс. Общаться с ним надо через LPT.  Для начала общения нужно выставлять на определённые линии(контакты) разъёма порта логические "0" или "1". Как это делается.
Уже пробовал общаться с портом вот так:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ComCtrls, ExtCtrls ;
type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Timer1: TTimer;
   Button1: TButton;
   Edit1: TEdit;
   Button2: TButton;
   //procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 buf101:DWord;
 implementation

{$R *.DFM}
{procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (Port[LPT] and $0040)=0 then  begin
beep;
Timer1.enabled:=false;
end;
end;
}

procedure TForm1.Button1Click(Sender: TObject);
var
Fhandle:Thandle;
buffer:integer;
buf01:DWord;
begin
FHandle:=CreateFile('LPT1',GENERIC_WRITE AND
GENERIC_READ,0,nil,OPEN_EXISTING,0,0);
ReadFile(FHandle,buffer, 8, buf01, nil);
Edit1.text:=inttostr(buffer);
CloseHandle(FHandle);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
Fhandle:Thandle;
Fuck: integer;
begin
fuck:=98767;
FHandle:=CreateFile('LPT1',GENERIC_WRITE AND
GENERIC_READ,0,nil,OPEN_EXISTING,0,0);
WriteFile(FHandle,fuck,8,buf101,Nil);
CloseHandle(FHandle);
end;

end.  

По процедуре WriteFile читается одно и то же левое число(типа 1264264). В чём ошибка? (кроме ДНК естественно:) )


hyper_omsk   (2004-01-14 06:33:00) [1]

Вот посмотрите компонент которым я пользуюсь он все делает и пишит и читает, только что-то у меня не получается
http://hyperomsk.narod.ru/lpt.zip


murdor   (2004-01-09 16:55:00) [2]


> N169   (09.01.04 14:10) [13]

инфа то там обширная, но что конкретно надо скачать, чтобы при программировании портов в делфи к ним был полный доступ???????
А то я не понимаю по буржуйски.....  :)


N169   (2004-01-09 14:10:00) [3]

Вот ещё ссылка, может, поможет:

http://www.lvr.com/parport.htm

там обширная инфа, + примочки


murdor   (2004-01-09 13:58:00) [4]

млин.... был я на TORRY.NET и не разобрался где там искать ентот
компонент (там их вроде 1227 штук или около того)... Где тама надо полазить чтобы найти SMport ??????


tesseract   (2004-01-09 10:20:00) [5]

Просто зайди на torry.net и посмотри там компонент SMport. ОН позволяет писать даныые напрямую в порты и читать все значащие линии lpt-порта. там просто вир. ус-во можно писать в любой порт какой приспичит - прямо по адресу.


murdor   (2004-01-08 18:05:00) [6]

так как-же правильно-то вывести данные в лпт и считать их???

я уже офигел от к-ва пустой информации... Конкретно как сделать
чтение/запись с порта????? И данные выводятся только на Д0-Д7???
блин....ничего не понимаю :)???????????


atruhin   (2004-01-08 09:08:00) [7]

> hyper_omsk
Ни в коем случае не подавай сигнал более 5В LPT порт пятивольтовый.
Для чтения у порта есть регистры управления EPP-ECP, сейчас нет под рукой литературы но это описано в любой книге по железу (неплохо описано у Гука), в них нужно установить режим работы.


hyper_omsk   (2004-01-08 07:51:00) [8]

Вопрос: Надо прочитать сигнал с девайса (через LPT) на порт подаю +5V, читаю с порта сигнала нет. Читаю по адресу &378 может адрес сменит или питание повысить (страшно сгорит что-нибудь). Подскажите как правильно организовать чтение с порта.


atruhin   (2004-01-07 10:43:00) [9]

Вопрос работы с портами поднимается раз в неделю! Неужели сложно посмотреть эту конфу чуть назад. Там масса вариантов. Надоедает отвечать на одни и теже вопросы, но всё таки, для прямой работы с портами под всеми системати есть достаточно библиотек, например бесплатная с исходниками WinIO - http://www.internals.com


Release   (2004-01-06 13:43:00) [10]

Не так давно я решал подобную проблему. Есть замечательная библиотека для доступа к любым портам - ntport.dll. Работает и под NT и под Win9x.  Пример работы с LPT для Delphi прилагается. Всё просто, и главное надёжно. Сайт разработчика  www.zealsoft.com . У меня есть версия 1.0 и кряка к ней. К версии 2.0 кряки есть на http://astalavista.box.spНе найдёш пиши на NO_SPAM_andrey@kuban.info - вышлю. Удачи!


Sniper-Max   (2004-01-06 12:13:00) [11]

Я писал с ассемблерным кодом, под 2000 не пашет естественно.
Надо компонент надыбать какой-нибудь для работы с ним, слашал, что есть такой, но все никак не займусь этим...

Надо заняться, а то у меня проблемма как принять эти логические уровни...


N169   (2004-01-06 11:38:00) [12]

Если общаться с девайсом через стандартный api, то надо быть уверенным, что девайс поддерживает станд. протокол обмена, напр., №1284.
Если это не так, то надо использовать сторонние компоненты для работы с портом LPT как с набором регистров, и формировать протокол самостоятельно.


tesseract   (2004-01-06 10:06:00) [13]

Подожди пока девайс оклимается, а режим порта ecp или epp?


Den_lam   (2004-01-05 10:33:00) [14]

Я менял размеры - то же самое.
Я вообще правильно понял, что третьи параметры в процедурах Read и Write file - это обыкновенные переменные?


Anatoly Podgoretsky   (2004-01-05 09:43:00) [15]

Размер fuck, buffer ни как не 8 байт


Наверх

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