LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Display ActiveX Image on LabVIEW Front Panel [method returns "handler" (IPictureDisp - stdole.Picture)]

Solved!
Go to solution

Hello, I am also trying to make a fingerprint scanner using the free Griaule ActiveX for my computer.

I am very new to LV and am having trouble with the  Microsoft fingerprint scanner reading an image.

 

0 Kudos
Message 11 of 13
(2,175 Views)
Kyle,
 
Using the Griaule SDK with LabVIEW is not trivial.  It requires experience using ActiveX methods (or DLL calls), Event Callbacks and User Events to acquire an OLE reference to the image, and other tools (like the ones sold by George Zou) to transfer the OLE data into a LabVIEW picture control.  [I'm currently working with Griaule to diagnose a random extraction error (-113).]  Then, you have to convert the OLE variant data to a form that you can read later from your reference template database.  You'll also need a database enrolling application for enrolling employees and their fingerprints.  The Griaule SDK ships with an Access / VB example, but does not include queries, nor does it port directly to LabVIEW due to the aformentioned OLE variant limitation.  (We used Microsoft SQL in lieu of Access.)
 
The good news is that Blue Ridge Test has already implemented the Microsoft reader with login features (either Name / Password only , Fingerprint only, or both) to track user operations, store their preferences, etc. into our standard multi-loop queued state machine.
 
After the setup phase of your experiment (i.e. configuring hardware & signal conditioning, verifying connectivity in MAX, demonstrating various portions in LabVIEW, etc.), you might consider your architecture before moving forward.  "There's hardly anything more expensive than cheap" -Glenn Haege.  We frequently have customers whose "simple engineering experiment" grew on them.  And, interpetting bad LabVIEW code a year into a project can be a lot like deciphering abstract art.  We would be happy to discuss your application with you before it gets to that point.
 
Take care,
Jason
 
Certified LabVIEW Developer
Blue Ridge Test, Inc.
NI Alliance Partner

Certified LabVIEW Architect
TestScript: Free Python/LabVIEW Connector

One global to rule them all,
One double-click to find them,
One interface to bring them all
and in the panel bind them.
0 Kudos
Message 12 of 13
(2,166 Views)
Solution
Accepted by topic author LabBEAN
Everything seems to be working now...
 
I used ActiveX methods everywhere except BiometricDisplay.  There, I used the GrFinger.dll function and passed it a U8 array for "rawImage" and an I8 array for "tpt".  "handle" is a U32 (pointer to handle).  Before and after the DLL call, I GetDC (of hWnd = 0) and ReleaseDC.  I used context = -1 since displaying the matching minutiae is not critical at this point.
 
For the Extract ActiveX method, I passed "rawImage" as OLE Variant (provided by the ImageAcquired callback VI).  I converted the "tpt" output from OLE Variant to LabVIEW Variant -- and then to string for storage / retrieval from our custom SQL Server database.

Certified LabVIEW Architect
TestScript: Free Python/LabVIEW Connector

One global to rule them all,
One double-click to find them,
One interface to bring them all
and in the panel bind them.
0 Kudos
Message 13 of 13
(2,122 Views)