comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Port LPT + ADA (whta do I wrong?)
Date: Tue, 7 Dec 2004 21:55:20 +0100
Date: 2004-12-07T21:55:20+01:00	[thread overview]
Message-ID: <1olbt9ia2fuuo$.qbyglb1cl3g8.dlg@40tude.net> (raw)
In-Reply-To: cp4rsq$qou$1@kujawiak.man.lodz.pl

On Tue, 7 Dec 2004 19:13:52 +0100, Slawo - MIR wrote:

> O.K., but it still doesn't read :|
> I did it all you wrote, and now the LPT_Error is raised :-(, and nothing is
> read from LPT port :(

This is another error. Unlike the previous one it has nothing to do with
Ada. Refer Windows API for the error reason.

> struktura: aliased Win32.Winbase.OVERLAPPED;
> 
> struktura.Offset := 16#01#;
> 
> if
> Win32.Winbase.Readfile(hLPT,st'address,Dword(1),read'access,struktura'access
> ) = Win32.False then
> 
>         Put_Line ("Nie udalo sie odczytac z LPT");
> 
>         raise LPT_Error;    --this exception is raised
> 
> end if;
> 
> stan := st;
> 
> I try to assingn to variable (field of record) "struktura.Offset" and  to
> "struktura.OffsetHigh" some different values - 16#379# (address of input
> register), 16#01#... and it didn't work :(
> 
> Help, someone ! :(

Calm down, you'll get it! (:-))

1. Do you really need overlapped I/O? This requires a lot of understanding
of how Windows works. Note that overlapped I/O is asynchronous to the
calling thread. It means that ReadFile will not wait for any data. It will
end immediately. After that you should periodically check the fields of the
OVERLAPPED structure for the results. Alternatively you can provide an
event object and enter wait for I/O completion (see WaitForSingleObject).
Note also that overlapped I/O fails at the file end (i.e. whne nobody
writes into the port). Maybe that's the case. Carefully read what MSDN
tells about ReadFile and OVERLAPPED.

2. When a Windows API fails, you should query for the failure reason using
GetLastError. Do it! Further, apply FormatMessage to the result of
GetLastError. Then you will exactly know what's going on.

Good luck!

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2004-12-07 20:55 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-03 13:56 Port LPT + ADA S�awo - MIR
2004-12-03 14:40 ` Martin Krischik
2004-12-03 15:29   ` Slawo - MIR
2004-12-03 18:46     ` Martin Krischik
2004-12-03 18:43 ` tmoran
     [not found] ` <u111r0db4fsoj9u3hlkachspjt0r2vvup7@4ax.com>
2004-12-03 23:03   ` Adrien Plisson
2004-12-03 23:51     ` Slawo - MIR
2004-12-04  0:51     ` Jeffrey Carter
2004-12-04 18:05 ` Port LPT + ADA (whta do I wrong?) S�awo - MIR
2004-12-04 20:20   ` Dmitry A. Kazakov
2004-12-07 18:13     ` Slawo - MIR
2004-12-07 20:55       ` Dmitry A. Kazakov [this message]
2004-12-08  4:28         ` Steve
2004-12-08  8:27           ` Dmitry A. Kazakov
2004-12-12 22:25           ` Brian May
2004-12-14  2:41             ` Steve
2004-12-12 22:46           ` Brian May
2004-12-12 23:03             ` Adrien Plisson
     [not found]       ` <rt8dr09tuvgbqaeq9vmujd1pqtb72hbamv@4ax.com>
2004-12-09  8:17         ` Jerry van Dijk
2004-12-05  6:45   ` Brian May
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox