Re: Frame Grabbers with IDL [message #7523 is a reply to message #7515] |
Mon, 25 November 1996 00:00  |
Troy Klein
Messages: 4 Registered: April 1995
|
Junior Member |
|
|
Rolando Raqueno wrote:
>
> Does anybody have experience with having IDL control a frame grabber
> (any recommendations) hosted by a PC?
>
> Thanks
>
> RVR
It can be done. I'm currently grabbing frames using IDL 3.6.1 on a 486
PC running
Windows 3.1 with a Dipix frame grabber.
There were two main problems encountered:
1) IDL call_external uses the argc, argv calling convention, while the
windows
library supplied by Dipix does not. So I had to have someone write
a library to
convert the function calls.
2) IDL on the PC seems to break up its memory allocation for variables
into 64KB chunks.
That is, you can't transfer more than 64KB of data at a time.
More explanation of 2):
The images that I am grabbing are exactly 128KB. If I create space to
hold the image
( IDL> im=intarr(256,256) ), and then pass the variable to the DLL, it
is passed by
reference, i.e. the DLL gets the address of the first element of image.
I can then
start filling the image with valid data from the DLL. However, when I
cross the 64KB
boundary, bad things start happening. Apparently the last 64KB
allocated for the image
by IDL do not directly follow the first 64KB in memory address space.
Therefore, I must
transfer each image in two pieces. Not a big deal, but it took us a
while to figure
out what the problem was.
Has anyone else run into the 64KB limit on a PC, or am I dreaming?
--
Troy Klein, Johns Hopkins University / Applied Physics Laboratory
Johns Hopkins Road, Laurel, MD 20723
E-Mail: troy.klein@jhuapl.edu
|
|
|